首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

条件编译指令:#if,#endif

介绍 #if 和 #endif是一组同时使用的,叫做条件编译指令。 #if 与 #define、#include等指令一样是由预处理器这个强大的工具处理的, 预处理器可以在编译前处理c程序。...最常见的条件编译是防止重复包含头文件的宏,形式跟下面代码类似: #ifndef LED_H #define LED_H #endif // #ifndef LED_H 条件编译中使用的预编译指令 #define...之后的语句,相当于C语法中的else-if #else 与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else #endif...#ifdef class_2 printf("class_2\n"); #endif return 0; } 运行结果图 ?...可以明显看出,程序没有执行 #if class_1 #endif 中的程序,这是因为,在程序的开头已经定义了class_1为0,而class_2为1,程序遇见 #if #endif 只执行

2.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    条件编译ifdef_ifndef_endif用法

    #ifdef 就是”if define”的意思,即”如果定义了” #ifdef 标识符1 程序段1 #else 程序段2 #endif 如果定义过标识符1,那就执行程序段1,负责执行程序段2.也可以有如下用法...: #ifdef 标识符1 程序段1 #endif #ifndef “if not define”,如果没有定义过....#ifndef 标识符1 程序段1 #else 程序段2 #endif 如果没有定义过标识符1,就执行程序段1,负责执行程序段2.也可以有如下用法: #ifndef aaa #define aaa...a*a*a #endif #if #if 表达式1 程序段1 #else 程序段2 #endif 作用&例子 防止重复定义 当你在a.h中定义了一个”某变量”,然后在b.h中包含了a.h的头文件,...; } 这样在c.c中会编译错误,将b.h改为如下就可以解决这个问题. b.h #ifndef _A_H #define _A_H #include "a.h" #endif 用于注释代码 #include

    65530

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

    文章目录 开门见山 预处理指令 #include #define 示例一 示例二 示例三 #undef #program once program 条件编译指令 #ifdef、#ifndef、#endif...#if、#elif、#else、#endif error 自我测评 开门见山 本文主要介绍c语言中条件编译相关的预编译指令,常见的预处理指令如下: #include包含一个源代码文件...#ifdef、#ifndef、#endif #ifdef用于判断某个宏是否定义,和#ifndef功能正好相反,二者仅支持判断单个宏是否已经定义 #endif用于终止#if预处理指令。...#if、#elif、#else、#endif #if可支持同时判断多个宏的存在,与常量表达式配合使用。...#endif ---- 最后,本文为我“redis6.0.6源码学习”的开路先锋,大家如有兴趣,可以点个关注一起学习呀 ?

    4.7K40

    总结ifelifelseendif宏之间的嵌套关系

    先前写的一个工具(Qml宏预处理工具)顺便就总结一下if/elif/else/endif之间的嵌套关系,并整理成表。   从左到右顺序,与之上一个宏定义对比。除去2个无效项,共有14个有效项。...if elif else endif if 创建子层 同层逻辑 同层逻辑 同层逻辑 elif 创建子层 同层逻辑 同层逻辑 同层逻辑 else 创建子层 无效 无效 同层逻辑 endif 创建分组层 上一层逻辑...#if /* elif - > if 创建子层 */ #elif #elif #endif #else #if /* else - > if 创建子层 */ #else #endif...#endif #if /* endif -> if 创建分组层 */ #if #if #if #endif #elif /* endif -> elif 上一层逻辑 */...#else #endif #else /* endif -> else 上一层逻辑 */ #endif #endif /* endif -> endif 上一层逻辑 */

    1.3K20
    领券