In the sys/types.h header, I've noticed some preprocessor directive defines( #define ) that haven't been assigned a value. Here's what I'm on about if you don't already:
#defines arent always used to define constants, doing this just defines those values, perhaps so that they can be used for conditional compilation. For example when I make a project in visual studio, running on windows, and check the project properties under c++ -> preprocessor, _DEBUG and WIN32 are defined. when in release NDEBUG and WIN32 are defined. You can define your own things too then check whether they're defined
1 2 3
#ifdef _DEBUG
....
#endif
so that the project is compiled differently depending on the solution configuration or platform