Moving the Linux Kernel to Modern C
I always strongly disliked the kernel's approach to macros (especially how they try to masquerade as everything but macros with their lowercase names). More than once I wasted time debugging code because I didn't realize that a macro was involved (special mention for the cases where depending on the compilation flags a symbol can sometimes expand to a macro and sometimes something else).I suppose in the case of list handling there's not really a good alternative though. If C had lambdas we could use inline functions instead but that's not a thing. Still think it ought to have been uppercase though.