转载:http://www.cnblogs.com/cyttina/archive/2013/05/11/3072969.html 看了这篇文章后了解了,但是文章中的例子比较特别,我在这里加个注释好了。 http://www.cnblogs.com/welkinwalker ...
条件编译 C语言中,预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行相应的转换,预处理过程还会删除程序中的注释和多余的空白符号。预处理指令是以 开头的代码行, 必须是该行除了空白字符外的第一个字符。 后是指令关键字,在 和指令关键字之间允许存在若干空白字符。 使用宏进行条件编译的用法与使用宏防止多重引用类似。示例如下: ifdef DEBUG 如果定义了 DEBUG,则执行 ...
2018-08-13 16:56 1 5044 推荐指数:
转载:http://www.cnblogs.com/cyttina/archive/2013/05/11/3072969.html 看了这篇文章后了解了,但是文章中的例子比较特别,我在这里加个注释好了。 http://www.cnblogs.com/welkinwalker ...
(1)跨平台的使用 C++:编写跨平台程序的关键,C/C++中的内置宏定义 分两部分: 操作系统判定: Windows: WIN32 Linux: linux Solaris: __sun 编译器判定 ...
#表示:对应变量字符串化,即加双引号 连接符#@:它将单字符标记符变换为单字符,即加单引号 ##表示:把宏参数名与宏定义代码序列中的标识符连接在一起,形成一个新的标识符 例如: #define A(x) #@x //此处x仅限于单个字符 则A(m) 字面量表示 'm ...
C++/C 宏定义(define)中# ## 的含义 define 中的# ## 一般是用来拼接字符串的,但是实际使用过程中,有哪些细微的差别呢,我们通过几个例子来看看。 #是字符串化的意思,出现在宏定义中的#是把跟在后面的参数转成一个字符串; eg: #define strcpy__ ...
C++ 宏定义将一个标识符定义为一个字符串,源程序中的该标识符均以指定的字符串来代替。预处理命令不同于一般C++语句。因此预处理命令后通常不加分号。这并不是说所有的预处理命令后都不能有分号出现。由于宏定义只是用宏名对一个字符串进行简单的替换,因此如果在宏定义命令后加了分号,将会连同分号一起进行置换 ...
忘了啥时候记的笔记了 @ 目录 宏定义 1.不带参数的宏定义: 2.带参数的宏定义: C语言宏定义技巧(常用宏定义) 1,防止一个头文件被重复包含 ...
下面列举了一些常见的宏写法: 我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起。 当宏参数是另一个宏的时候需要注意的是凡宏定义里有用''#''或''##''的地方宏参数是不会再展开。 Linux内核中的一些宏定义(前面 ...
一、主要目标 (由于visual studio通常包含很多开发环境,通常将其中c/c++的ide称为visual c++ 20xx) 整理下visual c++ 2010下预定义的宏。做一下备忘和了解,在实际编码中可以考虑使用部分宏作为判断标准。 主要参考链接:http ...