printf("error!\n");
exit(1);
}
#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
BUILD_BUG_ON(sizeof(struct mystruct) % 8));
https://github.com/mcinglis/c-style====== Numerical programming ======
https://blog.segger.com/algorithms-for-division-part-3-using-multiplication/
====== OOP in C ======
https://dmitryfrank.com/articles/oop_in_c
OOC in C coverage in 21st century C (2nd ed.) book.
https://github.com/nathancharlesjones/Comparison-of-OOP-techniques-in-C
====== Encapsulation ======
https://embeddedartistry.com/fieldatlas/encapsulation-and-information-hiding-in-c/
====== assertions ======
Assert usage in real-time systems:
https://www.embedded.com/getting-started-with-real-time-assertions/
====== Other ======
http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html
Reverse engineering for beginners book
A simple pool allocator in C
====== Data type widths ======
64-bit Unix [LP64] 64-bit Windows [LLP64] 32-bit ARM
(ARM 64-bit follows LP64)
char 8 8 8
short 16 16 16
int 32 32 32
long 64 32 32
long long 64 64 64
pointer 64 64 32
See also https://wiki.osdev.org/X86-64
https://www.acepace.net/integerQuiz/
