Data Type in C
data type
| type | size [bytes] | size [bits] | mininum | max |
| (signed) (short) int | 2 | 16 | -32768 | +32767 |
| (signed) long int | 4 | 32 | -2147483648 | 2147483647 |
| unsigned (short) int | 2 | 16 | 0 | 65535 |
| unsigned long int | 4 | 32 | 0 | 4294967295 |
| (unsigned) char | 1 | 8 | 0 | 255 |
| signed char | 1 | 8 | -128 | +127 |
| float | 4 | 32 | | |
| double | 8 | 64 | | |
| long double | 16 | 128 | | |
Format of printf and scanf
printf(const char *formatp, ...)
scanf(const char *formats, ...)
formatp = '%' + FLAG + FIELDWIDTH + SPECIFIER
formats = '%' + FIELDWIDTH + SPECIFIER
Flag
| FLAG | OUTPUT |
| 0 | fill zero |
| - | left align |
| + | print + or - before number |
| (space) | print space before number |
| # | print radix |
Conversion Specifier
| SPECIFIER | OUTPUT | INPUT |
| d | decimal integer | int |
| hd | decimal integer | (short) int |
| ld | decimal integer | long int |
| u | decimal integer | unsigned int |
| hu | decimal integer | unsigned (short) int |
| lu | decimal integer | unsigned long int |
| o | octadecimal integer | unsigned int |
| ho | octadecimal integer | unsigned (short) int |
| lo | octadecimal integer | unsigned long int |
| x, X | hexadecimal integer | unsigned int |
| hx, hX | hexadecimal integer | unsigned (short) int |
| lx, lX | hexadecimal integer | unsigned (long) int |
| f | double (xxx.xxx) | float |
| e, E | float (xxx.xxxe+xx) | float |
| G, G | (double or float automatically selected) | float |
| le, lE, lf, lg, lG | (see f,e) | double |
| Le, LE, Lf, Lg, LG | (see f,e) | long double |