auto | Local variable. Usually implied automatically. |
break | Exit a loop or switch statement immediately. |
case | A choice inside a switch statement. |
char | Stores a single character such as 'A'. |
const | Value cannot be changed after creation. |
continue | Skip the rest of the current loop iteration. |
default | Fallback option in a switch statement. |
do | Used in a do...while loop. |
double | Double-precision floating point number. |
else | Runs when an if condition is false. |
enum | Create a list of named numeric constants. |
extern | Variable or function exists in another file. |
float | Stores decimal numbers. |
for | Loop with start, test, and update sections. |
goto | Jump directly to a label in code. |
if | Run code only when a condition is true. |
inline | Suggest function code be inserted directly. |
int | Stores whole numbers. |
long | Larger integer type. |
register | Suggest storing a variable in CPU registers. |
restrict | Pointer optimization hint for compiler. |
return | Send a value back from a function. |
short | Smaller integer type. |
signed | Number can be positive or negative. |
sizeof | Returns size of a variable or type in bytes. |
static | Keep value between function calls or limit scope. |
struct | Create a custom data structure. |
switch | Select one of many code paths. |
typedef | Create a new name for a type. |
union | Several variables share the same memory. |
unsigned | Number cannot be negative. |
void | No value or no type. |
volatile | Value may change unexpectedly. |
while | Loop while a condition remains true. |
_Alignas | Specify memory alignment requirements. |
_Alignof | Get alignment requirement of a type. |
_Atomic | Atomic variable for thread safety. |
_Bool | Boolean type (true or false). |
_Complex | Complex number type. |
_Generic | Choose code based on data type. |
_Imaginary | Imaginary number type (rare). |
_Noreturn | Function never returns to caller. |
_Static_assert | Compile-time check. |
_Thread_local | Separate copy for each thread. |
#define | Create a preprocessor macro. |
#include | Insert another file before compilation. |
#ifdef | Compile only if a macro exists. |
#ifndef | Compile only if a macro does not exist. |
#endif | End an #if, #ifdef, or #ifndef block. |
#pragma | Compiler-specific instruction. |