社区
工具平台和程序库
帖子详情
条件编译中能不能出现“或”??如:#ifdef DEF_A | DEF_B ...
youngrin
2005-07-14 12:09:18
#ifdef DEF_A | DEF_B
代码A
#endif
我想在DEF_A或者DEF_B被定义时执行代码A,正常的定义应该是怎么样的呢?!
...全文
1516
4
打赏
收藏
条件编译中能不能出现“或”??如:#ifdef DEF_A | DEF_B ...
#ifdef DEF_A | DEF_B 代码A #endif 我想在DEF_A或者DEF_B被定义时执行代码A,正常的定义应该是怎么样的呢?!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
megaboy
2005-07-14
打赏
举报
回复
哦,楼主是这个意思啊?
对于#ifdef DEF_A | DEF_B合不合法,单就合法否这个意思来说,这句话可以认为是合法的,但是,注意了,呵呵,但是!它达不到你的预期。
因为,#ifdef(包括ifndef)后面跟的是标识符,不是表达式,编译器在进行预处理的时候,#ifdef DEF_A | DEF_B这句话能通过预处理,但是因为A后面有个空格,预处理器认为DEF_A这个标识符到这里结束了,因此这个空格后面的字符被忽略。
第二,所有预处理指令都是不进行运算的,|是一个位运算符,因此|不能在预处理里面使用,即使是后面跟常量表达式的#if条件编译,也不能使用它,就是说,#if DEF_A | DEF_B是非法的,不能通过预处理,#if后面可以使用关系表达式或逻辑表达式,比如#if DEF_A || DEF_B。
楼主明白了吧?
mlwu3
2005-07-14
打赏
举报
回复
感觉不很合法
#if defined DEF_A || defined DEF_B
youngrin
2005-07-14
打赏
举报
回复
呵呵,我是说:
#ifdef DEF_A | DEF_B
这样写是否合法。。。
megaboy
2005-07-14
打赏
举报
回复
在楼上那条件编译之前,使用以下预处理编译就行了:
#define DEF_A 或者
#define DEF_B
uboott移植实验手册及技术文档
#cp smdk2410 fs2410 –a #cd fs2410 #mv smdk2410.c fs2410.c #vi Makefile (将 smdk2410修改为 fs2410) #cd ../../include/configs #cp smdk2410.h fs2410.h 退回 U-Boot根目录:#cd ../../ (4)建立...
预编译指令与宏定义
def
ined()] #else #if
def
#ifn
def
#endif //
条件编译
/* 头文件防止多次被包含 */ #ifn
def
ZLIB_H #
def
ine ZLIB_H #endif /* ZLIB_H */ /* 用C方式来修饰函数与变量 */ #if
def
__cplusplus ...
uniapp开发2--uniapp中的
条件编译
总结
uniapp中的
条件编译
总结
C++预处理命令,包含宏定义、文件包含、
条件编译
等
C++ #if #endif #
def
ine #if
def
#ifn
def
#if
def
ined #if !
def
ined详解 先了解一下 预处理命令: 在编译之前进行得处理,C语言得预处理主要有三个方面得内容:1.宏定义;2.文件包含;3.
条件编译
。预处理命令是以“#...
C++ - C与C++相互调用 extern “C“
1.函数重载遇上函数指针: 将重载函数名赋值给函数指针时: -> 根据重载规则挑选与函数指针参数列表一致的候选者。 -> 严格匹配候选者的函数类型与函数指针的函数... return a + b; } int func(const char* s) {
工具平台和程序库
24,853
社区成员
27,330
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章