This code was mostly written as an experiment, to see just how much could be done using only the C preprocessor (give or take). Turns out you can do quite a lot. In fact, *all* of the tables in this library are generated at compile-time. The polynomial is #define'd in crc32i.h, and all of the tables are generated through a combination of enums and preprocessor trickery. Note that this may cause this code to compile slowly on some machines or compilers. At the moment it is hardcoded for x86-64 and gcc, but it could be adapted to other compilers if they also have features like e.g. alignas() or whatever.