当前位置: 首页 > news >正文

云南省城乡建设厅网站中国唯一没有疫情的地方

云南省城乡建设厅网站,中国唯一没有疫情的地方,可免费下载的简历模板,望野by番茄鱼目录 1. #if #elif #else #endif 2. #ifdef #else #endif 3. #ifndef #else #endif 4. 三者区别 根据不同情况编译不同代码、产生不同目标文件的机制,称为条件编译。 条件编译是预处理程序的功能,不是编译器的功能。 1. #if #elif #else #endif …

目录

1. #if  #elif #else #endif

2. #ifdef #else #endif

3. #ifndef #else #endif

4. 三者区别


根据不同情况编译不同代码、产生不同目标文件的机制,称为条件编译

条件编译是预处理程序的功能,不是编译器的功能。

1. #if  #elif #else #endif

#if 的一般格式为:

#if 整型常量表达式1程序段1
#elif 整型常量表达式2程序段2
#elif 整型常量表达式3程序段3
#else程序段4
#endi

它的意思是:如常“表达式1”的值为真(非0),就对“程序段1”进行编译,否则就计算“表达式2”,结果为真的话就对“程序段2”进行编译,为假的话就继续往下匹配,直到遇到值为真的表达式,或者遇到 #else。这一点和 if else 非常类似。

需要注意的是,#if 命令要求判断条件为“整型常量表达式”,也就是说,表达式中不能包含变量,而且结果必须是整数;而 if 后面的表达式没有限制,只要符合语法就行。这是 #if 和 if 的一个重要区别。

#elif 和 #else 也可以省略,如下所示:

#include <stdio.h>
int main(){#if _WIN32printf("This is Windows!\n");#elseprintf("Unknown platform!\n");#endif#if __linux__printf("This is Linux!\n");#endifreturn 0;
}

2. #ifdef #else #endif

#ifdef 用法的一般格式为:

#ifdef  宏名程序段1
#else程序段2
#endif

它的意思是,如果当前的宏已被定义过,则对“程序段1”进行编译,否则对“程序段2”进行编译。

也可以省略 #else:

#ifdef  宏名程序段
#endif

示例:

#include <stdio.h>
#include <stdlib.h>
int main(){#ifdef _DEBUGprintf("正在使用 Debug 模式编译程序...\n");#elseprintf("正在使用 Release 模式编译程序...\n");#endifsystem("pause");return 0;
}

3. #ifndef #else #endif

#ifndef 用法的一般格式为:

#ifndef 宏名程序段1 
#else 程序段2 
#endif

与 #ifdef 相比,仅仅是将 #ifdef 改为了 #ifndef。它的意思是,如果当前的宏未被定义,则对“程序段1”进行编译,否则对“程序段2”进行编译,这与 #ifdef 的功能正好相反。

#ifndef 在头文件可用于避免文件被重复包含。

#ifndef  _PRJ_DIR_FILE_H  //必须确保header guard宏名永不重名
#define  _PRJ_DIR_FILE_H//<头文件内容>#endif

4. 三者区别

#if 后面跟的是“整型常量表达式”,而 #ifdef 和 #ifndef 后面跟的只能是一个宏名,不能是其他的。

例如,下面的形式只能用于 #if:

#include <stdio.h>
#define NUM 10
int main(){#if NUM == 10 || NUM == 20printf("NUM: %d\n", NUM);#elseprintf("NUM Error\n");#endifreturn 0;
}

再如,两个宏都存在时编译代码A,否则编译代码B:

#include <stdio.h>
#define NUM1 10
#define NUM2 20
int main(){#if (defined NUM1 && defined NUM2)//代码Aprintf("NUM1: %d, NUM2: %d\n", NUM1, NUM2);#else//代码Bprintf("Error\n");#endifreturn 0;
}

#ifdef 可以认为是 #if defined 的缩写。

http://www.dt0577.cn/news/17163.html

相关文章:

  • 就业服务网站建设方案企业网站seo排名
  • 制作网站的公司注册资本要多少windows优化大师怎么卸载
  • 企业名称预先核准网上申请系统商品标题关键词优化
  • 宁波网站建设外包seo专员招聘
  • 网站开发和运营合同分开签么百度网页版首页
  • 哪个网站可以做自由行地图合肥seo公司
  • 哪家建设网站seo公司 杭州
  • 软件技术和计算机网络技术哪个好宁波seo网站
  • 上海专业高端网站建设服务竞价托管 微竞价
  • 怎么用源码做网站seo优化排名方法
  • 海搜网做的网站怎么办怎么注册自己的网站域名
  • 金融行业网站制作网站seo属于什么专业
  • 怎样在设计网站做图赚钱吗商品推广软文写作500字
  • 上海在线做网站营销推广活动策划方案
  • wordpress建站两秒打开关键词优化排名用哪些软件比较好
  • 策划公司组织结构图北京seo外包
  • wordpress页面如何排序学seo哪个培训好
  • 湖南衡阳市建设工程造价网站营销推广app
  • 平台是什么意思群排名优化软件官网
  • 微商手机网站制作公司深圳关键词排名推广
  • 公司网站建设内容建议百度网盘下载app
  • 合肥一浪网络科技有限公司seo优化价格
  • 理财网站建设的毕业论文活动策划公司
  • 成都网站优化哪家好今天新闻联播
  • 有哪些国外网站做的好的效果图精准营销的典型案例
  • 怎么样在网站上做跳转乔拓云网站建设
  • 唐山建设公司网站临沂seo建站
  • 做微博这样的网站吗软文广告推广
  • 专业建站公司设计百度推广app
  • 手机网站页面设计百度首页入口