c语言不带参数宏定义代码,C语言基础:C语言宏定义(1) - 不带参数的宏定义

本文介绍了C语言中的宏定义,它用于解决在不知道数组大小时如何打印数组的问题。通过#define定义常量kCount,可以简化代码并提高可读性。宏定义的作用域从#define开始,直到遇到#undef或者文件结束。宏定义不能在类型声明中使用,如定义字符数组name时,将kCount作为字符串处理是错误的。文章强调了宏定义命名的常见规范,并提醒注意其在括号内的使用会当作字符串处理。
摘要由CSDN通过智能技术生成

前言

前面我们总结了C语言的数据类型, 有基础数据类型, 构造数据类型等等, 这次我们来讲讲C语言的宏定义,.

开始

什么是宏定义, 宏定义定义的又是什么东西? 有什么规范, 下面我们来看看例子:

#include

int main()

{

int a[] = {1, 2, 3, 4};

for (int i = 0; i < 4; i++) {

printf("a = %d\n", a[i]);

}

return 0;

}

一般来讲, 我们定义数组并且打印出来都像上面那个例子一样, 先定义数组, 然后再判断数组有多少个元素, 我们才能准确的使用for循环打印出来, 但这有一个问题, 如果我们不知道数组里有多少个元素, 那我们怎么才能打印呢? 宏定义就是为了解决这个问题而诞生的:

#include

#define kCount 4

int main()

{

int a[kCount] = {1, 2, 3, 4};

for (int i = 0; i < kCount; i++) {

printf("a = %d\n", a[i]);

}

return 0;

}

#define是宏定义的标准书写格式, 而kCount是宏定义名, 4是定义的常量;

那么宏定义的作用域在哪里呢? 让我们来看看一个例子:

#include

int main()

{

#define kCount 4

int a[kCount] = {1, 2, 3, 4};

for (int i = 0; i < kCount; i++) {

printf("a = %d\n", a[i]);

}

#undef

return 0;

}

宏定义的作用域, 从#define这句代码开始一直到#undef为止, 这个就是宏定义的作用域, 如果没有遇到#undef这句代码, 那么宏定义就是从#define开始一直到文件的结束.

PS: #undef这句是代表结束宏定义.

注意点:

宏定义一般起名方式有两种, 一种是以k开头, 一种就是整个宏名都是大写, 而定义好之后的宏名可以直接调用, 但是并不能写特定的类型中, 比如下面这个例子:

#include

#define kCount 4

int main()

{

char name[] = "kCount";

printf("name = %s\n", name);

return 0;

}

这样子是不正确的, 因为一旦使用在(" ") 符号中, 无论你是什么东西, 都当作字符串来处理, 这点我们需要注意.

好了, 这次我们就讲到这里, 下次我们继续~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值