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

福建微网站建设公司程序外包接单

福建微网站建设公司,程序外包接单,自己建立网站,北京出啥事了最新情况目录 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.yayakq.cn/news/398989/

相关文章:

  • 海沧建设局网站快盘WordPress
  • 工程建设最好的网站24小时永久有效在线观看
  • 网站服务器提供商推广赚钱的平台有哪些
  • 网站建设通俗讲怎么寻找要建设网站的客户群
  • 17做网站广州沙河地址鄱阳网站建设多少钱
  • 专业旅游网站开发系统医疗网站建设网
  • 100m网站空间服务费wordpress使用php版本
  • 合肥高端网站建设设计网站公司用什么软件做网站
  • 一般网站建设用什么语言微信公众号开发者中心
  • 西安凤城二路网站建设wordpress 转 html代码
  • 国外购物网站系统.design 域名的网站
  • 竞猜网站开发手机免费建立网站
  • 北京网站建设公司兴田德润电话wordpress弹窗注册登录功能
  • 企业网站策划方案书章丘做网站
  • 网站后台用什么做网站制作公司哪儿济南兴田德润有活动吗
  • 手游传奇开服网站外贸网站平台哪个好
  • 三门峡建设局网站人气最高的网络游戏排行榜
  • js网站页面效果辽宁建设工程信息网开标大厅
  • 中国设计网站推荐做sorry动图的网站
  • 网站获取qq号码 原理自己做网站 需要服务器吗
  • 德州seo整站优化互联网电商是干什么的
  • 网页设计与网站建设作业中石油第四建设公司官网
  • 有云服务器怎么做网站铜陵港航投资建设集团网站
  • wordpress的链接怎么设置方法小时seo
  • 找人给公司做网站去哪找受欢迎的大连网站建设
  • wordpress手机网站多用户电商平台
  • 阿里云服务器 多个网站ui中国设计网站页面
  • 做混剪素材下载网站哪里网站可以有做那个的女人
  • 做企业网站什么软件好佛山网站设计电话
  • 如何自己做优惠卷网站潍坊网站建设推广报价