C Language Notes¶
Other C notes:
Table of Contents¶
- C Language Notes
- The
main()Function - Scoping
- Typedef
- Imports
- Printf Format Specifiers
- Floats vs Doubles
- Loops in C
- Compiling a C Program
The main() Function¶
The main() function is the entry point of a C program.
int argc: The number of command line arguments.int **argv: The command line arguments as an array of strings.
Scoping¶
->: Member access operator.- This is used for accessing members of a pointer.
.: Member access operator.- This is used for accessing members of a struct.
Typedef¶
Declaring a type alias and/or custom struct type is done with the typedef keyword.
Example of a custom struct type:
typedef struct this_is_optional {
int num_needed;
char **needed;
// Or:
/* int *needed[]; */
int spent;
/* int budget; */
} grocery_list_t;
typedef struct this_is_optional:- This declares a struct type.
- The
this_is_optionalis the name of the struct type.- This is optional, the actual name goes at the end of the block.
- The struct members are defined inside the braces
{ }. - After the closing brace, we can define the name of the struct type.
- In this case,
grocery_list_t. - The
_tis a naming convention for custom types.
- In this case,
Imports¶
Instead of #include <iostream> (C++), we can use #include <stdio.h> (C).
stdio.his the library for IO (input/output).stdlib.his the library for memory (dynamic memory allocation).string.his the library that contains string functions.assert.his the library that contains theassert()function.
Printf Format Specifiers¶
For C programming: v_gF -> (man://printf(3))
| Control Sequence | Produces |
|---|---|
\n |
newline |
\l |
line-feed |
\r |
return |
\t |
tab |
\b |
backspace |
\f |
form-feed |
\s |
space |
\E and \e |
escape character |
^x |
control-x (x=char) |
Floats vs Doubles¶
Floats and Doubles both store floating point values.
Floats allow for 4 bytes (or 32 bits), while doubles are 8 bytes (or 64 bits).
| Floats | Doubles |
|---|---|
| 4 bytes (32 bits) | 8 bytes (64 bits) |
| 7 decimal digits precision | 15 decimal digits precision |
| possible precision errors with big numbers | won't get precision errors with big numbers |
Format specifier %f |
Format specifier %lf |
Loops in C¶
int count = 10;
for (int i = 0; i < count; i++) {
for (int j = 0; j < length; j++) {
repeated_str[i + length + j]
}
}
Compiling a C Program¶
To compile a C program, we need to use the gcc compiler.
For example, to compile hello.c, we would run:
gcc hello.c: This passeshello.cto the compiler.-o: Tells gcc to output an executable binary namedhello.