`
ychw365
  • 浏览: 52890 次
  • 性别: Icon_minigender_1
  • 来自: 长春
最近访客 更多访客>>
社区版块
存档分类
最新评论

宏定义与空格

阅读更多

宏定义与空格


在宏定义中,如果宏有多行,每行的后面必须有\,但是切忌\后不能有空格。

下面的正确实例:
#include "stdafx.h"
#include 
<iostream>
#include 
<string>

const std::string c_A = "A";
const std::string c_B = "B";

#define INSERT_FUNCTION(NAME) \
inline 
void \
Insert ## NAME(
const std::string& valuestr) \
{ \
    std::cout 
<< c_ ## NAME << valuestr << std::endl; \
}
 \

INSERT_FUNCTION(A)
INSERT_FUNCTION(B)

#undef INSERT_FUNCTION

int _tmain(int argc, _TCHAR* argv[])
{
    InsertA(
"value:i am a!");
    InsertB(
"value:i am b!");
    
return 0;
}

在vs2005中,使用ctrl+R+w开打开和关闭空格显示,在打开空格显示后你就可以看到你的\后面到底是不是多了空格
分享到:
评论

相关推荐

    C语言宏定义使用分析

    编译器在处理时宏定义时,首先从“#define”后第一个空格开始读取字符串,直到遇见下一个空格为止,两个空格之间的字符串为“宏名称”,确定好“宏名称”之后,本行的所有其他字符串都为“宏字符串”。图示:#define...

    常用C/C++预处理指令详解

    预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。...在带参数的宏定义,宏名和参数的括号间不能有空格。  宏定义不分配内存,变量定义分配内存。  宏展开不占运行时间,

    详解C语言中的#define宏定义命令用法

    ANSI标准将标识符定义为宏名,将替换过程称为宏替换。命令的一般形式为: #define identifier string 注意: 1.该语句没有分号。在标识符和串之间可以有任意个空格,串一旦开始,仅由一新行结束。 2.宏名定义后,...

    C/C++常用预处理指令

    预处理是在编译之前的处理,而编译工作的任务之一是语法检查,预处理不做语法检查。预处理命令以符号“#”开头。  常用的预处理指令包括: ...在带参数的宏定义,宏名和参数的括号间不能有空格。  宏定义不分配内存

    lint option

    选项还可以放在宏定义中,当宏被展开时选项才生效。例如: #define DIVZERO(x) /*lint -save -e54 */ ((x) /0) /*lint -restore */ 允许除数为0而不告警 LINT的选项很多共有300多种,大体可分为以下几类

    基于C语言解决九宫重排问题(源码+剖析)

    使用宏定义 #define N 3 定义了九宫格的大小为3x3。 printBoard 函数用于打印当前九宫格的状态。 isSolved 函数用于检查当前九宫格是否已经完成了重排,即所有数字是否按照从左到右、从上到下的顺序排列。 swap 函数...

    用C语言判断字符是否为空白字符或特殊字符的方法

    C语言isspace()函数:判断字符是否为空白字符 头文件: #include ...附加说明:此为宏定义,非真正函数。 范例:将字符串str[]中内含的空格字符找出,并显示空格字符的ASCII 码。 #include main(){ c

    Linux c中define的用法小结

    define的用法只是一种纯粹的替换功能,宏定义的替换是预处理器处理的替换。  一:简单的宏定义用法  格式:#define 标识符 替换内容  替换的内容可以是数字,字符,字符串,特殊字符和空格,后面是什么内容就会...

    虚幻UPROPERTY宏换行顶格工具

    该工具是为了解决虚幻的头文件定义变量的时候,写完宏换行后出现缩进的情况!好用,如果不会安装,请参照里面的readMe,如果还是不会可以联系我QQ596770421

    支持中文目录wget版本,linux版本

    在wget的源代码中 src/url.c 这个文件中有wget如何处理文件名的函数url_file_name() url_file_name()在根据url的形式判断该...解决方法基本上都是对这个url_file_name函数或者是FILE_CHAR_TEST 这个宏定义进行修改.

    编程修养,是关于写C程序的

    02、缩进、空格、换行、空行... 27、不要为宏定义加分号 28、||和&&的语句执行顺序 29、尽量用for 而不是while 做循环 30、请sizeof 类型而不是变量 31、不要忽略Warning 32、书写Debug 版和Release 版的程序

    C C++ 编程修养

    一本介绍关于编程修养方面... 27、不要为宏定义加分号  28、||和&&的语句执行顺序  29、尽量用for而不是while做循环  30、请sizeof类型而不是变量  31、不要忽略Warning  32、书写Debug版和Release版的程序

    C语言实验6

    实验内容4:定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。 实验要求: 输入事先已编好的程序,并运行该程序。分析运行结果是否正确。

    CIMCOEdit5.5.rar

     强大的固定循环/宏定义功能,用户可以更快速地增加/编辑复杂循环。  可自动对程序进行海德汉格式与ISO格式之间的相互转换。  强大的三维刀位轨迹动态模拟功能,可对数控车、数控铣程序进行方便、高效的轨迹...

    matlab运动目标提取代码-matlab-:matlab足球小游戏

    代码量近300行,代码中使用宏定义较多,移植性较好 图像刷新频率可以宏定义处修改 使用说明: 1、运行脚本文件,自动全屏显示,左侧会有相关提示信息 2、按任意键发球 3、wsad控制球员上下左右,按球员相应标号将球...

    QT写日志类实现实例

    //配置(默认配置请查看宏定义) //设置目录 int SetDir(const char *szDir); //设置文件名 int SetFileName(const char *szFileName); //设置至少磁盘空间 int SetDiskFreeSpace(unsigned long long ...

    高通平台printk输出log到串口

    1、查看当前打印级别 # cat /proc/sys/kernel/printk 默认为:4 4 1 7 ...3、内核函数printk的打印级别宏定义:Include/linux/kernel.h #define KERN_EMERG /* system is unusable */ #define KERN_ALERT

    【嵌入式Linux驱动开发】十四、了解Linux内核定时器使用流程,实现LED闪烁

    致敬英雄! 一、Linux内核定时器初探 1.1、图形界面配置系统节拍率   中断周期性产生的...在内核源码根目录,查看.cofig文件内容,可以看到有如下宏定义! 1.2、重要全局变量jiffies   在上一步,我们采用了 10

Global site tag (gtag.js) - Google Analytics