1.定义顺序的无关性

#define PI 3.14

#define TWO_PI  2*PI

这两句谁前谁后无所谓,因为预处理器不断迭代来实现宏替换,直到源文件中没有宏了才停止。

2. 宏变量变成字符串

#define str(x)  #x

例子:str (teststring)  ==> "teststring"

3. 宏变量拼接

#define print(n)  printf("%d\n",x##n)

例子:print(20) ==> printf("%d\n",x20)

4. 定义长字符串如何换行

#define url  "http://www.baidu.com" \

        "?hello=world&ni=hao"

注意编译器会把两个相邻的字符串连接到一起,形成单个字符串。

转载于:https://www.cnblogs.com/guoxiaoqian/p/4338875.html

C/C++预处理宏的总结相关推荐

  1. C 预处理器 —— __DATE__ # __TIME__ # __FILE__ # __LINE__ # __STDC__ (预处理宏的使用 —— 打印debug信息:)

    预定义宏: ANSI C 定义了许多宏.在编程中您可以使用这些宏,但是不能直接修改这些预定义的宏. 宏    描述 __DATE__    当前日期,一个以 "MMM DD YYYY&quo ...

  2. python展开 c函数中的宏预处理_C中的预处理宏

    C中的预处理宏 宏定义就属于预处理命令的一种.那么,什么是宏呢? 宏:c语言标准允许在程序中用一个标识符来表示一个字符串.标识符就是宏名. 宏替换:宏替换就是宏定义.在编译预处理中,将程序中所有的宏名 ...

  3. 【C语言】----宏定义,预处理宏

    什么是宏? 宏是学习任何语言所不可缺少的,优秀的宏定义可以使得代码变得很简洁且高效,有效地提高编程效率. 宏是一种预处理指令,它提供了一种机制,可以用来替换源代码中的字符串,解释器或编译器在遇到宏时会 ...

  4. Predefined Shader preprocessor macros //预定义的着色器预处理宏

    Predefined Shader preprocessor macros 预定义的着色器预处理宏 Unity defines several preprocessor macros when com ...

  5. Unity Shader - Predefined Shader preprocessor macros 着色器预处理宏

    目录:Unity Shader - 知识点目录(先占位,后续持续更新) 原文:Predefined Shader preprocessor macros 版本:2019.1 Predefined Sh ...

  6. assert预处理宏与预处理变量

    assert assert是一个预处理宏,由预处理器管理而非编译器管理,所以使用时都不用命名空间声明,如果你写成std::assert反而是错的.使用assert需要包含cassert或assert. ...

  7. cmake(13):构建时设置预处理宏定义以及add_compile_definitions命令详解

    目录 1. 说明 1.1 无参宏 1.2 有参宏 2. 使用示例 3. 命令解析 add_compile_definitions 命令 add_definitions 命令 参考链接 1. 说明 宏定 ...

  8. C语言 | 预处理 | 宏定义 | #define | 定义函数

    文章目录 预处理 预处理运算符 宏定义 无参宏定义 带参宏定义 宏定义-定义函数 此文主要介绍宏定义,并在介绍宏定义时举例介绍预处理命令 预处理 参考:C 预处理器 | 菜鸟教程 重要的预处理器指令如 ...

  9. 关于NOMINMAX这个预处理宏

    标准库在<algorithm>头中定义了两个模板函数std::min() 和 std::max().通常用它可以计算某个值对的最小值和最大值.可惜在 Visual C++ 无法使用它们,因 ...

最新文章

  1. tomcat和idea都占用了8080_IDEA 启动tomcat 端口占用原因以及解决方法( 使用debug模式)...
  2. java原子更新类_Java内部具有原子更新的动态热交换环境
  3. [pytorch] Pytorch入门
  4. mysql复杂查询教程_mysql 复杂查询
  5. oracle 取mac地址,java执行命令,得到Mac地址
  6. 【华为云技术分享】云图说 | 初识云耀云服务器,打造“极优、极简”的云上体验
  7. C++学习笔记系列(一)
  8. python代码打包成apk反编译_python程序打包和反编译
  9. 微型计算机普遍采用的数字编码是,计算机原理复习题1
  10. Windows系统中设置定时开关机方法
  11. # 研究杂感 × VOSviewer(第四辑)
  12. win10计算机快捷键设置,win10计算器快捷键设置_w10电脑计算器快捷键怎么添加-win7之家...
  13. 计算机硬盘格式化三个步骤,格式化计算机的硬盘驱动器步骤
  14. java html 导出 pdf文件,Java HTML导出PDF (一)
  15. 使用ls筛选某一天的文件
  16. 找个免费的天气预报API真难a
  17. 网络安全漏洞管理十大度量指标
  18. provide和inject的使用
  19. python网格搜索优化参数_python - 用于管道的网格搜索参数网格的说明 - SO中文参考 - www.soinside.com...
  20. 应用于双麦克风小型手持设备的语音降噪方法

热门文章

  1. 接oracle私活价格,也来记录一下第一次接私活的体验
  2. 分享适合程序员使用17 张壁纸
  3. 后端:Spring IOC 知识点总结,写得太好了!
  4. 别去取悦,心里没你的人
  5. html桌面图标样式,如何更改图标样式,换桌面图标的方法
  6. android studio 工程demo例子,Android Studio 实现跑马灯微项目实例
  7. Vue 3.2 发布了,那尤雨溪是怎么发布 Vue.js 的?
  8. Linux下编译安装Mysql简单步骤
  9. 阿里云插件新版发布,多特性助力提升开发者体验
  10. hadoop学习笔记(二):centos7三节点安装hadoop2.7.0