[其它应用] #ifdef、#else、#endif和#ifndef的作用

[复制链接]
pl202 发表于 2024-4-7 10:15 | 显示全部楼层
如果指定的宏已经被定义,那么随后的代码块会被编译器包含进来;如果没有定义,则忽略直到遇到 #else 或 #endif 的代码。
phoenixwhite 发表于 2024-4-7 12:08 | 显示全部楼层
与#ifdef或#ifndef配合使用,表示如果前面的条件不满足,那么#else后面的代码将被编译。
yorkbarney 发表于 2024-4-7 14:16 | 显示全部楼层
#ifndef:这个预处理指令与 #ifdef 相反,它检查一个宏是否没有被定义。如果指定的宏尚未定义,那么随后的代码块会被编译器包含进来;如果已经定义,则忽略直到遇到 #else 或 #endif 的代码。
febgxu 发表于 2024-4-7 16:10 | 显示全部楼层
#else:这个预处理指令与 #ifdef 或 #ifndef 配合使用,作为条件不满足时的备选分支。只有在前面的条件不满足时,才会编译 #else 后面的代码。
i1mcu 发表于 2024-4-7 18:02 | 显示全部楼层
如果指定的宏已被定义(通常是通过#define指令定义的),则编译器将编译位于#ifdef和相应#endif之间的代码段。否则,编译器将忽略此代码段。
timfordlare 发表于 2024-4-7 19:55 | 显示全部楼层
#ifdef: 这个指令检查是否定义了一个特定的宏(宏名)。如果该宏已定义,则执行 #ifdef 和与之配套的 #endif 指令之间的代码。这常用于在不同的编译环境中包含不同的代码片段,或者在调试版本和发布版本之间包含不同的定义。
nomomy 发表于 2024-4-7 21:55 | 显示全部楼层
#ifdef:检查某个宏是否被定义,如果被定义,则执行后续的代码。
#ifndef:检查某个宏是否未被定义,如果未被定义,则执行后续的代码。
#else:与#ifdef或#ifndef配合使用,当条件不满足时,执行#else后面的代码。
#endif:表示条件编译块的结束。
uytyu 发表于 2024-4-8 10:23 | 显示全部楼层
如果某个宏已经定义,那么#ifdef后面的代码将会被编译。如果该宏未定义,那么#ifdef后面的代码将被忽略。
maqianqu 发表于 2024-4-8 12:29 | 显示全部楼层
条件包含指令可以嵌套使用,但要注意层次清晰,避免逻辑混乱。
条件包含指令不会影响编译器的语法分析,它们只是文本替换工具。
jtracy3 发表于 2024-4-8 14:24 | 显示全部楼层
#ifdef 用于检查一个宏是否已经被定义。如果宏已经被定义,那么紧接在 #ifdef 后面的代码直到相应的 #endif 或 #else(如果存在)之前的代码都会被编译。
timfordlare 发表于 2024-4-8 16:17 | 显示全部楼层
这个指令与 #ifdef 或 #ifndef 配合使用。如果 #ifdef 检查的宏已定义,或者 #ifndef 检查的宏未定义,则执行 #else 和 #endif 之间的代码。#else 必须与 #ifdef 或 #ifndef 配对使用,否则预处理器会报错。
亚瑟 发表于 2024-4-23 14:43 来自手机 | 显示全部楼层
这个可以把程序适应不同的平台
LLGTR 发表于 2024-4-25 01:52 | 显示全部楼层
这允许应用程序适应不同的平台
朝生 发表于 2024-5-9 23:26 | 显示全部楼层
预处理工作是在进行词法扫描和语法分析之前进行的编译
天天向善 发表于 2024-5-20 19:14 | 显示全部楼层
These instructions are typically used to handle cross-platform programming, debugging information output, conditional compilation, and so on。
Henryko 发表于 2024-5-22 09:52 来自手机 | 显示全部楼层
用来做程序复用的吧
勇敢的大白菜 发表于 2024-5-23 10:25 | 显示全部楼层
查看汇编语言之后,就知道优缺点了。
嵌入小菜菜 发表于 2024-5-23 10:35 | 显示全部楼层
这个很好的知识贴,学习了。
看别人照片 发表于 2024-5-24 10:48 | 显示全部楼层
这种宏定义是最灵活多变的
亚瑟 发表于 2024-5-24 21:02 | 显示全部楼层
这个可以做不同芯片程序相兼容
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部