条件编译C语言中条件编译的实例

条件编译  时间:2021-08-25  阅读:()

如何根据单片机端口状态来进行条件编译

端口状态只是让单片机选择要运行的程序段。

不是条件编译。

各状态下的程序都是编译了下载到单片中的,端口状态是用来选择,程序运行哪一段。

就程序中普通的if 判断跳转。

就是不运行的程序段也是下载到单片机中,占程序空间的。

条件编译,是在代码中加条件开关,在电脑上编译时,如果某个条件不成立,就不编译其中的程序段。

这样编译好的程序代码下载到单片机中就定死了只能执行在编译时条件成立的程序,因为只编译了这部分。

没有编译的是不占程序空间的。

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 故执行 所以 简单地讲,条件编译是根据 宏条件 选择性地编译语句,它是编译器在编译代码时完成的; 条件语句是根据条件表达式选择性地执行语句,它是在程序运行时进行的。

C语言中条件编译的实例

条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。

其中#else部分也可以没有,即: #ifdef 程序段1 #endif 这里的“程序段”可以是语句组,也可以是命令行。

这种条件编译可以提高C源程序的通用性。

如果一个C源程序在不同计算机系统上系统上运行,而不同的计算机又有一定的差异。

例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,这样往往需要对源程序作必要的修改,这就降低了程序的通用性。

创梦网络-江苏宿迁BGP云服务器100G高防资源,全程ceph集群存储,安全可靠,数据有保证,防护真实,现在购买7折促销,续费同价!

官方网站:点击访问创梦网络宿迁BGP高防活动方案:机房CPU内存硬盘带宽IP防护流量原价活动价开通方式宿迁BGP4vCPU4G40G+50G20Mbps1个100G不限流量299元/月 209.3元/月点击自助购买成都电信优化线路8vCPU8G40G+50G20Mbps1个100G不限流量399元/月 279.3元/月点击自助购买成都电信优化线路8vCPU16G40G+50G2...

Vultr VPS新增第18个数据中心 瑞典斯德哥尔摩欧洲VPS主机机房

前几天还在和做外贸业务的网友聊着有哪些欧洲机房的云服务器、VPS商家值得选择的。其中介绍他选择的还是我们熟悉的Vultr VPS服务商,拥有比较多达到17个数据中心,这不今天在登录VULTR商家的时候看到消息又新增一个新的机房。这算是第18个数据中心,也是欧洲VPS主机,地区是瑞典斯德哥尔摩。如果我们有需要欧洲机房的朋友现在就可以看到开通的机房中有可以选择瑞典机房。目前欧洲已经有五个机房可以选择,...

桔子数据58元/月 ,Cera美西云服务器 2核4G 50G数据盘 500M带宽 1000G流量

桔子数据(徐州铭联信息科技有限公司)成立于2020年,是国内领先的互联网业务平台服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务,拥有丰富的国内BGP、双线高防、香港等优质的IDC资源。 公司一直秉承”以人为本、客户为尊、永...

条件编译为你推荐
directoryC#的treeview的AfterLabelEdit事件会多次引发,怎么办?动画技术动漫制作技术是学什么组或资源的状态不是执行请求操作的正确状态intel 5100 agn 支持无线承载网络么?色空间求图像处理中颜色空间的介绍,越详细越好网站数据分析报告网站要怎么去做分析报告?最好的电脑操作系统什么版本的电脑系统好用反恐精英维护到几点今天反恐精英几点维护完?解码器有什么用完美解码的具体作用是什么?我很好奇???怎样清除历史记录如何清除历史记录什么是无线上网WIFI无线网络是什么网络?
韩国虚拟主机 重庆域名注册 国外服务器租用 vps优惠码cnyvps 拜登买域名批特朗普 万网域名证书查询 cybermonday 香港机房 namecheap 搬瓦工官网 免费名片模板 lighttpd 免费个人网站申请 193邮箱 河南移动网 ftp免费空间 空间登陆首页 免费ftp 国内域名 石家庄服务器托管 更多