C语言 ——— #define定义标识符

目录

#define 定义常变量

#define 定义字符串

#define 定义一条代码

#define 定义的标识符是否需要加分号


#define 定义常变量

代码演示:

#define M 100 //定义常变量

代码用途:

int a = M; 

int arr[M] = { 0 }; 

此时的 M 具有常属性,所以可以用来初始化数组,并且在程序预编译阶段,所有 M 的地方都会被替换为 100


#define 定义字符串

代码演示:

#define STR "abcd" //定义字符串

代码用途:

char* str = STR;

同样的,在程序预编译阶段,所有使用 STR 的地方都会被替换为 "abcd"


#define 定义一条代码

代码演示:

#define FOR for(int i = 0;i < 5; i++) // 定义代码

代码用途:

FOR
{
	printf("hello\n");
}

所有使用 FOR 的地方都会被替换成 for(int i = 0;i < 5; i++)

代码验证:


#define 定义的标识符是否需要加分号

代码演示:

#define M 100  //不加分号

#define M 100; //加上分号

根据两段不同的代码来验证是否需要加分号

验证代码1:

int a = M;

当 M 为不加分号时(经过预编译阶段处理,M 会被替换为 100):

int a = 100;

当 M 为加上分号时(经过预编译阶段处理,M 会被替换为 100;):

int a = 100;;

此时以上的代码运行时不会出现任何错误,多一个分号只是多了一条空语句

验证代码2:

int arr[M] = { 0 };

当 M 为不加分号时(经过预编译阶段处理,M 会被替换为 100):

int arr[100] = { 0 };

当 M 为加上分号时(经过预编译阶段处理,M 会被替换为 100;):

int arr[100;] = { 0 };

此时代码就会出现语法问题,程序会直接报错,而且程序只会报错在定义 arr 数组的这一行,所以尽量不要加分号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值