Problem: You're used to Booleans as logical/truth values but you miss them in C. You'd like your code to be more verbose instead of 1's and 0's all over the place.
Here are some simple workarounds that I've observed over the years. Most of these take advantage of chars being an integral data type in C/C++ (i.e. they are stored as integers).
Method 3: by Julian Assange in strobe.c v1.03
Method 4: by Julian Assange in strobe.c v1.05
Method 5: by Daniel Fredouille in C generic data structures
Method 6: by Qhull in libqhull.h