首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

#if #ifdef和#ifndef的用法和区别

#if #ifdef和#ifndef用法 移位运算符的优先级高于条件运算符,重载是不能改变运算符优先级的,这点要注意,所以代码应当像下面这样调整,写宏的时候一定要注意优先级,尽量用括号来屏蔽运算符优先级...x:y int main() { int a=10,b=20; #ifdef MAX printf("40:The larger one is %dn",MAXIMUM...和#ifndef区别 #ifdef 标识符 程序段1 #else 程序段2 #endif 它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。...其中#else部分也可以没有,即: #ifdef 程序段1 #denif 这里的“程序段”可以是语句组,也可以是命令行。这种条件编译可以提高C源程序的通用性。...有时也采用下面的形式: #ifndef 标识符 程序段1 #else 程序段2 #endif 只是第一行与第一种形式不同:将“ifdef”改为“ifndef”。

1.4K10

讲通CC++预编译条件编译指令 #ifdef,#ifndef,#endif,#define,…

文章目录 开门见山 预处理指令 #include #define 示例一 示例二 示例三 #undef #program once program 条件编译指令 #ifdef、#ifndef、#endif...(x):(y)) int main(void) { #ifdef MAX //判断这个宏是否被定义 printf("3 and 5 the max is:%d\n",MAX(3,5));...#ifdef、#ifndef、#endif #ifdef用于判断某个宏是否定义,和#ifndef功能正好相反,二者仅支持判断单个宏是否已经定义 #endif用于终止#if预处理指令。...2 #else // ... remained cases #endif // #ifdef ABC 如果不需要多条件预编译的话,上面例子中的#elif和#else均可以不写。...而应当使用#ifdef或#ifndef。 注意: #if、#elif之后的宏只能是对象宏。如果宏未定义,或者该宏是函数宏,则编译器可能会有对应宏未定义的警告。

4.3K40

C++中条件编译

C++中常用常用#ifdef,#if和#endif来控制头文件的编译变量检查,控制编译的代码区域。...在C++中常用#ifdef,#ifndef和#endif来控制头文件的编译变量检查,另一方面,也可以方便控制代码的插入。...对于#ifdef后面需要的只是这个值有没有用#define定义,并不关心define的这个值是0还是1。#if defined和#ifdef用法一样,只不过多了逻辑表达式组合。...:与#ifdef相反,判断某个宏是否未被定义#elif:若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,相当于C语法中的else-if#else:与#...if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else#endif:#if, #ifdef, #ifndef这些条件命令的结束标志.defined

16710
领券