What does it mean that the value is only "discrete" when compiling __DARWIN_UNIX03? What is the definition when __DARWIN_UNIX03 is not true? If the value changed to 102 in 10.5, then it makes sense to compile in the constant 102 only if you are going to support 10.5 and newer exclusively, which is what this #if seems to suggest.