Mercurial > crc32
view README @ 0:422835bc1aca
*: checkin
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 09 Feb 2026 01:15:00 -0500 |
| parents | |
| children | 90cb48b87dcc |
line wrap: on
line source
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.
