#define的用法

简介:
#define N 100  ok
#define N 100; error
#define N = 100  error   int a[N] => int a[= 100] error
#define pin int*   pin a,b; error(a为int*,b为int)


2. 特殊用法

#define BEGIN {
#define END }

int main BEGIN
    printf("haha");
END


定义一个循环
#define LOOP for(;;)

重新定义数据类型
#define IT int


3.带参数的宏
#define MAX(x,y) ((x)>(y)?(x):(y)) 


4.宏的特殊单行定义
#define C(x) #x  将宏参数进行字符串字面量化并且加""号 
const char* p = C(hello,world);
printf("p=%s\n",p);//结果为hello,world


5.define 的多行定义
define可以替代多行的代码,在每一个换行的时候加上一个"\"
#define func() printf("hello \ 
,world")

int main(void){
    func(); //hello ,world
    return 0;
}


6.在大规模的开发过程中最重要的是条件编译
#ifdef WINDOW
#endif
...
...
#ifdef LINUX
#endif


7.取消宏
#undef 标识符

8.条件编译
#ifdef XXX 
#else
#endif

9.有用的宏
__LINE__被编译文件的行数(整型)
__FILE__被编译文件的名字(字符型)
__DATE__编译日期(字符型)
__TIME__编译时间(字符型)
printf("__LINE__:%d\n",__LINE__);  5
printf("__FILE__:%s\n",__FILE__);  01.c
printf("__DATE__:%s\n",__DATE__);  Dec 24 2016

printf("__TIME__:%s\n",__TIME__);  14:23:36



本文转自神ge 51CTO博客,原文链接:http://blog.51cto.com/12218412/1885750

相关文章
|
3月前
宏#define命令练习2
【6月更文挑战第19天】宏#define命令练习2。
20 1
|
3月前
宏#define命令练习3
【6月更文挑战第19天】宏#define命令练习3。
20 0
|
3月前
宏#define命令练习
【6月更文挑战第19天】宏#define命令练习。
29 1
#define的用法
在程序中扩展#define定义符号和宏时,需要涉及几个步骤。 1. 在调用宏时,首先对参数进行检查,看看是否包含任何由#define定义的符号。如果是,它们首先 被替换。 2. 替换文本随后被插入到程序中原来文本的位置。对于宏,参数名被他们的值所替换。 3. 最后,再次对结果文件进行扫描,看看它是否包含任何由#define定义的符号。如果是,就重复上述处理过程。
99 0
|
4月前
|
C语言
typedef 和 # define 用法区别
typedef 和 # define 用法区别
41 0
|
4月前
|
编译器 C语言 C++
define与const关键字的多种用法
define与const关键字的多种用法
56 0
|
11月前
|
编译器
#define 与 const 区别
#define 与 const 区别。
48 1
用#define宏实现Add函数
用#define宏实现Add函数
94 0
const与#define的区别与联系
const与#define的区别与联系
91 0
|
编译器
#define定义的宏
#define定义的宏
114 0
#define定义的宏