C99 and C11 Features You Should Actually Be Using
Learn the C99 and C11 features that improve everyday code: designated initializers, compound literals, stdint.h, _Bool, _Generic, and atomic operations.
Read articleTutorials, tips and guides for C programmers — from beginner mistakes to advanced systems programming.
Learn the C99 and C11 features that improve everyday code: designated initializers, compound literals, stdint.h, _Bool, _Generic, and atomic operations.
Read articleLearn how void pointers work in C, how to write generic functions and data structures, and the rules for casting, alignment, and type safety.
Read articleLearn how to implement a stack data structure in C using a dynamic array. Push, pop, peek, and error handling with a growable implementation.
Read articleLearn why atoi cannot detect errors, how strtol provides complete error checking, and the full pattern for converting strings to integers safely in C.
Read articleLearn how to implement a circular buffer (ring buffer) in C. Fixed-size FIFO, head/tail pointers, overflow handling, and thread-safe considerations.
Read articleLearn how realloc works under the hood, when it copies vs extends in place, how to grow dynamic arrays correctly, and the bugs that come from misusing it.
Read articleLearn the C portability traps that cause bugs when moving between Linux, macOS, and Windows. Integer sizes, endianness, type signedness, and compiler differences.
Read articleLearn how getchar and putchar work in C, why getchar returns int not char, how to use them to copy input, count characters, and avoid scanf’s buffer problems.
Read articleLearn why int main() is correct in C and void main() is not. Understand return values, EXIT_SUCCESS, argc/argv, and the two valid signatures for main.
Read articleLearn the C operator precedence rules that cause the most real bugs. Bitwise operators, ternary, sizeof, and pointer arithmetic traps explained with examples.
Read article