tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Use of feature test macros



On Sat, Nov 02, 2024 at 10:36:10PM +0100, Roland Illig wrote:
 > In the system headers, we use this pattern a lot:
 > > #if (_POSIX_C_SOURCE - 0 >= 200809L) || defined(_NETBSD_SOURCE)
 > 
 > Are the parentheses around the first condition really necessary? If so,
 > for which cases?
 > 
 > Is the "- 0" in the first expression really necessary? If so, for which
 > cases?

I was just discussing this idiom a few days ago, in the context of
program checkers that warn when you do #if SYM when it isn't defined
(which is legal and well defined, but also often a mistake) and one of
the virtues of this idiom is that such checkers can recognize it and
shut up.

For that purpose it's better to keep the parentheses as well as the
arithmetic.

-- 
David A. Holland
dholland%netbsd.org@localhost


Home | Main Index | Thread Index | Old Index