【C++学习笔记】预处理指令
突然在工作中看到 #if defined(ENABLE_FP8)
和 #ifdef ENABLE_FP8
两个形式。
在C++的预处理指令中,这两者是等价的,都是用来检查ENABLE_FP8
这个宏是否已经被定义。
#ifdef ENABLE_FP8
这是一个简写形式,它直接检查ENABLE_FP8
是否被定义,无论其值是什么。如果ENABLE_FP8
被定义,那么随后的代码块将被编译,直到遇到#endif#if defined(ENABLE_FP8)
这是长一点的形式,它使用defined
运算符来检查ENABLE_FP8
是否已经被定义。这与#ifdef
的功能相同,但提供了更多的灵活性,因为它可以与其他预处理运算符(如!
,&&
,||
)组合使用,如:
#if defined(ENABLE_FP8) && defined(ANOTHER_MACRO)
....
#endif