宏定义中的空格

  另外还有一个问题需要引起注意,看下面例子:

  1. #define SUM (x) (x)+(x)

复制代码

  这还是定义的宏函数SUM(x)吗?显然不是。编译器认为这是定义了一个宏:SUM,其代表的是(x) (x)+(x)。

  为什么会这样呢?其关键问题还是在于SUM 后面的这个空格。所以在定义宏的时候一定要注意什么时候该用空格,什么时候不该用空格。这个空格仅仅在定义的时候有效,在使用这个宏函数的时候,空格会被编译器忽略掉。也就是说,上一节定义好的宏函数SUM(x)在使用的时候在SUM 和(x)之间留有空格是没问题的。比如:SUM(3)和SUM (3)的意思是一样的。

#define中宏定义中的空格相关推荐

  1. 宏定义中的 ## ... __VA_ARGS__

    宏定义中的##操作符和... and _ _VA_ARGS_ _ 1.Preprocessor Glue: The ## Operator 预处理连接符:##操作符 Like the # operat ...

  2. define宏定义中的#,##,@#及\符号

    define宏定义中的#,##,@#及\符号 在#define中,标准只定义了#和##两种操作.#用来把参数转换成字符串,##则用来连接两个前后两个参数,把它们变成一个字符串. 1.# (string ...

  3. #define宏定义中的#,##,@#,\ 这些符号的神奇用法

    C/C++ 宏命令的神奇用法. 先看下面三条语句: #define Conn(x,y) x##y #define ToChar(x) #@x #define ToString(x) #x 1 2 3 ...

  4. #define宏定义中的#,##,@#,\

    先看下面三条语句: ? 1 2 3 (1)#define Conn(x,y) x##y (2)#define ToChar(x) #@x (3)#define ToString(x) #x (1)## ...

  5. C#中宏定义#define、预处理#if #else #endif的使用

    C#中预处理的使用: 预处理指令并不会被编译为执行代码中的指令,但使用预处理指令可以选择编译程序中的哪部分代码.一般在调试代码时或在发布不同功能等级的软件版本中使用. 需要特别注意的是,宏定义必须在C ...

  6. c语言中宏定义的字符替换#define M(x,y,z) x*y+z

    C语言中宏定义的字符替换问题 例子: 在c语言中定义如下宏 #define M(x,y,z) x*y+z 给定如下程序 #include<stdio.h> #include<stdl ...

  7. 如何用C语言改变宏定义的大小,C语言中宏定义使用的小细节

    C语言中宏定义使用的小细节 #pragma#pragma 预处理指令详解 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#p ...

  8. c程序语言符号的作用,c语言宏定义中的#,##,#@及\符号的作用

    1.#(stringizing)字符串化操作符 作用:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串.其只能用于有传入参数的宏定   义中,且必须置于宏定义体中的参数名前. 如: #def ...

  9. C/C++中 宏定义字符串 操作

    关于记号粘贴操作符(token paste operator): ## 1. 简单的说,"##"是一种分隔连接方式,它的作用是先分隔,然后进行强制连接. 其中,分隔的作用类似于空格 ...

最新文章

  1. php 二位数组随机,PHP多维数组 php打乱数组二维数组多维数组的简单实例
  2. 近世代数--内外直积--本质是一样的
  3. Jenkins中安装Credentials Binding插件实现凭证管理与安装Git插件和拉取代码构建项目
  4. redhat 6.6 安装 (LVM)
  5. eclipse代码自动提示,eclipse设置代码自动提示
  6. 算法: 1和0子集合的个数 474. Ones and Zeroes
  7. Linux vi命令详解与使用教程
  8. Spring-Boot开发者工具:自动重启、LiveReload、远程开发
  9. MongoDB从入门到高级的实战操作
  10. 使用SpringBoot完成RabbitMQ与Dubbo框架集成例程
  11. web设计——NBA队标
  12. python爬取豆瓣图书(详细步骤讲解)
  13. 我希望用Java拥有的十大锡兰语言功能
  14. matlab 双点光源干涉的模拟,基于MATLAB的双点光源干涉现象的模拟
  15. python 董付国程序设计基础与应用第三版pdf_Python 程序设计基础(董付国 著)完整版PDF[6MB]...
  16. Python Selenium库的使用
  17. 【十八掌●内功篇】第六掌:YARN之YARN资源调度器
  18. C# Winform Panel 内控件大小不随Panel大小改变设置
  19. Teechart图表教程:Teechart的安装
  20. Bartender 4:图标显示切换大变样,还能在菜单栏自定义文字

热门文章

  1. mysql数据库应用从入门到精通 王飞飞_《MYSQL数据库应用从入门到精通(第2版)(含盘)》王飞飞 崔洋 贺亚茹著【摘要 书评 在线阅读】-苏宁易购图书...
  2. java中的感叹号是_[Java教程]javascript中的2个感叹号的用法
  3. linux 管道符号 | ,以及 ||等等特殊符号、通配符
  4. OAM 深入解读:OAM 为云原生应用带来哪些价值?
  5. 进制转换器(用顺序栈实现)(可实现简单的二进制或八进制或十进制的转换)
  6. 自定义函数求一元二次方程(C语言)
  7. typora for mac crack
  8. office word excel文件白图标修复
  9. Windows10安装Linux子系统(WSl2+Ubuntu20.04+图形界面)
  10. 三路智力竞赛抢答装置