C语言宏的定义及使用
2016-04-01 10:11
330 查看
一般在C程序中都会看到宏的定义与使用define,一般会有下面几种用法,
1、在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。
#define M (a+b) 它的作用是指定标识符M来代替表达式(a+b)。在编写源程序时,所有的(a+b)都可由M代替
2、判断某个宏是否被重复定义,宏的解除,如下
#if defined a
#undef a
#define a 200
#endif
上述语句检验a是否被定义,如果被定义,则用#undef语句解除定义,并重新定义a为200
相类似用法
同样,检验a是否定义:
#ifndef a //如果a没有被定义
#define a 100
#endif
以上所用的宏中:#undef为解除定义,#ifndef是if not defined的缩写,即如果没有定义。
一般.h文件里最外层的
#if !defined XXX_XXX
#define XXX_XXX
#endif
是为了防止这个.h头文件被重复include。
3、有参数宏的定义
#define M(y) ((y)*(y)+3*(y)) /*宏定义*/
k=M(5); /*宏调用*/
1、在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。
#define M (a+b) 它的作用是指定标识符M来代替表达式(a+b)。在编写源程序时,所有的(a+b)都可由M代替
2、判断某个宏是否被重复定义,宏的解除,如下
#if defined a
#undef a
#define a 200
#endif
上述语句检验a是否被定义,如果被定义,则用#undef语句解除定义,并重新定义a为200
相类似用法
同样,检验a是否定义:
#ifndef a //如果a没有被定义
#define a 100
#endif
以上所用的宏中:#undef为解除定义,#ifndef是if not defined的缩写,即如果没有定义。
一般.h文件里最外层的
#if !defined XXX_XXX
#define XXX_XXX
#endif
是为了防止这个.h头文件被重复include。
3、有参数宏的定义
#define M(y) ((y)*(y)+3*(y)) /*宏定义*/
k=M(5); /*宏调用*/
相关文章推荐
- 坚持c++,真正掌握c++(2)
- VC++的UNICODE工程一些常用转码
- C\C++宏定义笔记
- extern用法:C文件和C++文件之间的函数互调
- 【poj 3122】Pie 题意&题解&代码(C++)
- 【学习笔记】C++中 const常用的几种形式和目的
- 2015年蓝桥杯省赛B组C/C++:加法变乘法
- C++面向对象高级编程(下)第二周-Geekband
- 2015年蓝桥杯C/C++组:串逐位和
- C++函数编译原理和成员函数的实现
- C++书籍推荐
- C++对象的内存模型
- C++(union), C#(伪union)实现 Java的Float.intBitsToFloat()方法
- 【poj 3258】River Hopscotch 题意&题解&代码(C++)
- OC语言--NSFileManager& NSFileHandle
- C语言(概念术语装逼犯)
- 链表的实现(C++)
- 【poj 3273】Monthly Expense 题意&题解&代码(C++)
- CSP考试 2014年12月第1题 门禁系统 C语言实现
- C++ 调试帮助