导航:首页 > 源码编译 > 条件编译和if语句的区别

条件编译和if语句的区别

发布时间:2023-06-02 19:30:36

① if语句与条件编译

if(变量名

#ifdef
宏定义变量

||
变量名

#endef

就是说如果你的宏定义变量被宏定义了,那么你的||变量名就参与编译否则根本就不参与编译,就像没有这段代码一样.

② C语言中条件编译和If语句之间的差别,各适用于什么情况

条件编译是C语言中预处理部分的内容,它是编译器编译代码时最先处理的部分,
条件编译里面有判断语句,比如
#if
、#else
、#elif

#endif
它的意思是如果宏条件符合,编译器就编译这段代码,否则,编译器就忽略这段代码而不编译,如
#define
A
0
//把A定义为0
#if
(A
>
1)
printf("A
>
1");
//编译器没有编译该语句,该语句不生成汇编代码
#elif
(A
==
1)
printf("A
==
1");
//编译器没有编译该语句,该语句不生成汇编代码
#else
printf("A
<
1");
//编译器编译了这段代码,且生成了汇编代码,执行该语句
#endif

if
语句则不然,if

C
语言中的关键字,它根据表达式的计算结果来觉定执行那个语句,它里面的每个分支都编译了的,

#define
A
0
if
(A
>
1)
printf("A
>
1");
//编译器编译该语句,但因为A
==
0
未执行
else
if(A
==
1)
printf("A
==
1");
//编译器编译该语句,但因为A
==
0
未执行
else
printf("A
<
1");
//编译器编译该语句,因为A
==
0
故执行
所以
简单地讲,条件编译是根据
宏条件
选择性地编译语句,它是编译器在编译代码时完成的;
条件语句是根据条件表达式选择性地执行语句,它是在程序运行时进行的。

③ 汇编语言 if与.if的区别

在汇编中if和搜乎颂.if是两个伪指令 - - ,不能通用
.if就是判断,if就是条件编世郑译
.if会生成一定顷亩的指令
if是选择编译一部分指令

④ 条件编译问题

if语句是确定要编译的内容,在运行时判断,比如:
if(a>b)
printf("A大于B");
else
printf("A小于B");

条件编译可不是在运行阶段执行的,是为了某种需要(特别是跨平台的需要),只在编译器扫描源代码时,确定用哪一部分。

举个例子,比如,一般LINUX多线程程序叫做pthread_create,而WINDOWS启动多线程的程序是CreateThread,为了保证同一个程序可以跨平台运行,我们这样书写程序:
#ifdef WIN32 //如果是WINDOWS系统
#include <windows.h>
#define THREAD CreateThread
#else //如果是LINUX系统
#include <pthread.h>
#define THREAD pthread_create
#endif

阅读全文

与条件编译和if语句的区别相关的资料

热点内容
在运行对话框中输入命令提示符 浏览:289
微信公众号开发教程php 浏览:195
电脑作为服务器怎么配置 浏览:93
磨砂壳文件夹 浏览:980
b2c开源源码 浏览:56
电脑qq压缩文件解压缩失败 浏览:177
大龄女程序员想转行 浏览:99
聚币交易所app怎么充值 浏览:163
加密文件如何解除加密iPad 浏览:922
太极张三丰怀旧源码 浏览:105
2016考研大纲pdf 浏览:67
程序员sdk算法 浏览:527
程序员听诊技巧 浏览:622
从技术走向管理pdf 浏览:823
思科命令行模式删除用户 浏览:568
一号玩家app怎么换绑 浏览:325
emm平台源码 浏览:330
从网页下载资料服务器地址 浏览:408
安卓用什么播放器可以看港剧 浏览:458
keil5一编译axf就缺失了 浏览:510