42 lines
2.1 KiB
Markdown
42 lines
2.1 KiB
Markdown
# Compilation Steps
|
|
|
|
1. Preprocessing: The preprocessor obeys commands that begin with #, also known as directives
|
|
Commands for the preprocessor are called directives. Directives begin with a pound sign, and they do not end with a semicolon.
|
|
|
|
Example:
|
|
```c
|
|
#include <stdio.h>
|
|
```
|
|
2. Compiling. A compiler translates then translates the program into machine instructions.
|
|
3. Linking: The generated objects are combined to create a complete executable.
|
|
|
|
The preprocessor is typically integrated with the compiler.
|
|
|
|
# Types
|
|
## Strings
|
|
A string literal is characters enclosed in double quotation marks.
|
|
|
|
A newline can be inserted using `\n`.
|
|
|
|
## Integers
|
|
An integer is a way to store a whole number. In C, integers are signed by default.
|
|
## Floats
|
|
A float is a decimal value. Slower arithmetic and inexact values are both drawbacks of using floats.
|
|
## Variables
|
|
A variable must be declared before it is assigned.
|
|
|
|
|
|
# Formatting specifiers
|
|
| Specifier | Function |
|
|
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `%d` | Display an integer |
|
|
| `%f` | Display a float. Specify the number of places to round to by adding a decimal and a number, eg `%.2f` would round to two decimal places. |
|
|
For number formatting specifiers, the convention is as follows:
|
|
`%-a.bX`
|
|
`%`: Start of the formatting specifier
|
|
`-`: (optional) If included, justify value left in space. Otherwise, justify right in space
|
|
`a`: (optional) If included, the size of the field in characters.
|
|
`.`: Separator between `a` and `b`. Optional if `b` is not specified
|
|
`b`: The number of decimal places to round to
|
|
`X`: The type of format to use, and the end of the specifier. Use `d` for integer base 10 (decimal) representation, `f` for fixed point decimal, and `e` for exponential notation
|
|
# Standard library |