博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译预处理指令:文件包含指令、宏定义指令、条件编译指令
阅读量:4972 次
发布时间:2019-06-12

本文共 1457 字,大约阅读时间需要 4 分钟。

编译预处理指令:文件包含指令、宏定义指令、条件编译指令。“#”开头,不加分号“;”

1、文件包含指令:

  #include<文件名> 标准目录下搜索
  #include"文件名" 当前目录下搜索,再在标准目录下搜索

2、宏定义指令:

  #define 宏名 宏文本 //宏名习惯大写
  #undef 宏名 //删除宏

  空宏,#define PI //常与条件编译指令一起使用

  无参宏,#define PI 3.14 //常量表达式,PI=3.14
  有参宏,#define AREA(x) 3.14*x*x //多参数间用“,”隔开

#include
#define AREA(x) 3.14*(x)*(x) //如果不加括号,出现3.14*3+7*3+7错误using namespace std;int main() { cout << AREA(3+7) << endl; return 0;}

3、条件编译指令:可减少被编译的语句,提高效率。

  格式1:
  #ifdef 空宏名 //若空宏已经定义,则编译代码块1
    代码块1
  #else
    代码块2
  #endif

格式2:常量表达式可以是包含宏、算术运算、逻辑运算等等的合法C常量表达式。结果不为0(为真),则编译代码块1

  #if 常量表达式
    代码块1
  #else
    代码块2
  #endif

说明:#ifdef与#if的区别,#ifdef只判断宏是否被定义,而不关注其值。#if判断其值的真假(0假,非0真)。

//格式1:#include
#define ENGLISH_VERSION //定义空宏,若此行被注释,执行中文代码块using namespace std;int main() {#ifdef ENGLISH_VERSION //空宏被定义,执行英文代码块 cout << "Input a radius please:";#else //否则,执行中文代码块 cout << "请输入圆的半径:";#endif double r; cin >> r;#ifdef ENGLISH_VERSION cout << "Radius is " << r;#else cout << "半径是" << r;#endif return 0;}
//格式2:#include
#define ENGLISH_VERSION 0 //定义符号常量using namespace std;int main() {#if ENGLISH_VERSION //格式2,判断ENGLISH_VERSION是否为真 cout << "Input a radius please:";#else //为假,执行中文代码块 cout << "请输入圆的半径:";#endif double r; cin >> r;#if ENGLISH_VERSION cout << "Radius is " << r;#else cout << "半径是" << r;#endif return 0;}

 

转载于:https://www.cnblogs.com/xixixing/p/10145588.html

你可能感兴趣的文章
unity3d 移动与旋转 2
查看>>
寻找二叉查找树中比指定值小的所有节点中最大的那个节点
查看>>
如何设置输入框达到只读效果
查看>>
RT3070 USB WIFI 在连接socket编程过程中问题总结
查看>>
MIS外汇平台荣获“2013年全球最佳STP外汇交易商”
查看>>
LeetCode 题解之Add Digits
查看>>
hdu1502 , Regular Words, dp,高精度加法
查看>>
20120227_CET6
查看>>
SpringBoot在idea中的热部署配置
查看>>
MyEclipse连接SQL Server 2008数据库的操作方法
查看>>
leetcode【67】-Bulb Switcher
查看>>
JS验证图片格式和大小并预览
查看>>
laravel5.2 移植到新服务器上除了“/”路由 ,其它路由对应的页面显示报404错误(Object not found!)———新装的LAMP没有加载Rewrite模块...
查看>>
编写高质量代码--改善python程序的建议(六)
查看>>
windows xp 中的administrator帐户不在用户登录内怎么解决?
查看>>
接口和抽象类有什么区别
查看>>
Codeforces Round #206 (Div. 2)
查看>>
**p
查看>>
优先队列详解
查看>>
VS2012 创建项目失败,,提示为找到约束。。。。
查看>>