宏定义:#define

版权声明:版权归作者所有 https://blog.csdn.net/qq_36772866/article/details/88833260

在C语言中可以用#define定义一个标识符来表示一个常量。其特点是:定义的标志符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。预编译又叫预处理。预编译不是编译,而是编译前的处理,这个操作是在正式编译之前由系统自动完成的,所以叫预编译。用#define 定义标识符的一般形式为:

#define 标识符 常量

#define 和 #include一样,也是以“#”开头的。凡是以“#”开头的均匀为预处理指令,所以#define也是一条预处理指令。#define 又称宏定义,标识符为所定义的宏名,简称宏。
标识符的命名规则与前面讲的变量的命名规则一样。#define的功能是标识符定义为其后的常量。一经定义,程序就可以直接使用标识符来表示这个常量。是不是与定义变量类似?

但是要区分开来,变量名表示的是一个变量,但是宏名表示的是一个常量。
变量可以给他赋值,但是常量当然就不能给他赋值了!

宏所表示的常量可以是数字,字符,字符串,表达式,其中最常用的是数字。

那么为什么要使用宏定义?
用宏定义有什么好处?
我们直接使用数字不行?
为什么要用一个标识符表示数字?

宏定义的最大好处就是 “方便程序的修改”。
使用宏定义可以使用宏代替一个程序中,经常使用过的常量。
那么程序在预编译的时候是怎么处理宏定义的呢?
其实预编译所执行的操作就是简单的“文本”替换。对于宏定义而言,预编译的时候会将程序中所出现“标识符”的地方全部用这个“常量”替换

如果要终止其作用域可以使用#undef命令

#undef 标识符

undef 后面的标志符表示索要终止的宏

#include<stdio.h>
#define NUM 5;
int main(void)
{
	int i, j = NUM;
	int a[NUM] = {0};
	printf("请输入 %d 个数:",j);
	for(i=0; i< NUM; ++i)
	{
		scanf("%d", &a[i]);
	}
	for(i=0; i<NUM; ++i)
	{
		printf("%d\x20", a[i]);
	}
	printf("\n");
	return 0;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36772866/article/details/88833260