您的位置:首页 > 编程语言 > C语言/C++

C语言 - #define宏的定义与使用方法

2016-01-18 21:49 633 查看
一.宏的概念与定义方法

1.被定义为”宏”的标示符称为”宏名”.在编译预处理时,对程序中所有出现的”宏名”,都用宏定义中德字符串去替换,这称为”宏替换”或者”宏展开”.

2.宏定义是由源程序中德宏定义命令完成的.宏替换是由预处理程序自动完成的;在C语言中,”宏”分为有参数和无参数两中.

二.#define的使用

1.”#”表示是一项预处理指令,

2.以”#”开头的均为预处理指令.

3.先给出使用场景 : 频繁使用的简单的 字符串/表达式/格式串,复杂的还是选择使用函数为好;

格式:

#define 标示符 字符串/表达式/格式串
#define 宏名(形参表) 字符串/表达式/格式串
#undef 终止宏定义的作用域
#undef 标示符/宏名


示例1 : #define

#include "stdio.h"
#define H 6 //定义宏
int main(int argc, const char * argv[]) {
int num = H;
printf(“%d”,num);
return 0;
}


示例2 : #undef

宏的定义作用范围从定义开始直到文件结束,或者用#undef终止

#include "stdio.h"
#define H 6//定义宏
int main(int argc, const char * argv[]) {
int num = H;
printf("%d\n",num);
#undef H
int num2 = H;//报错,因为找不到定义的H,并且赋值也是不合法的
printf("%d\n",num2);
return 0;
}


示例3 : #define 表达式

#include "stdio.h"
//宏定义表达式时将元素与结果加上(),是因为调用宏时是先复制宏内表达式,而不是复制表达式结果.避免调用后运算错误
#define Pow(num_A,num_B) ((num_A)*(num_B))
int main(int argc, const char * argv[]) {
int num = Pow(10, 20);
printf("%d\n",num);
#undef Pow
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 #define