我已经看到 #ifndef ABC并#if !defined (ABC)在同一个C源文件中.
他们之间有细微的差别吗?(如果是风格问题,为什么有人会在同一个文件中使用它们)
Dan*_*ego 39
不,当用这种方式时,两者之间没有区别.defined()当初始#if或后续#elif条件之一需要更复杂的测试时,后一种形式(使用)是有用的.#ifdef仍然可以工作,但#if defined()在这种情况下可能更清楚.例如,如果需要测试是否定义了多个宏,或者它是否等于特定值.
方差(在文件中使用两者)可能取决于使用中的特定细微差别,如上所述,或者仅仅是不良实践,因为不一致.