C语言,宏名有类型,其参数也有类型?对嘛?判断

 我来答
汽车之路w
高粉答主

2021-01-07 · 关注我不会让你失望
知道大有可为答主
回答量:1.2万
采纳率:100%
帮助的人:295万
展开全部

C语言中,宏名没有类型,其参数也没有类型。

宏不存在类型问题,宏名无类型,它的参数也无类型,只是一个符号代表,展开时代入指定的字符串即可。宏定义时,字符串可以是任意类型的数据。

在编译预处理时,对程序中所有出现的宏名,都用宏定义中的字符串去代换。



扩展资料

带参宏注意事项:

1、宏名和形参表的括号间不能有空格。

2、宏替换只作替换,不做计算,不做表达式求解。

3、函数调用在编译后程序运行时进行,并且分配内存。宏替换在编译前进行,不分配内存。

4、函数只有一个返回值,利用宏则可以设法得到多个值。

5、宏展开使源程序变长,函数调用不会。

6、宏展开不占用运行时间,只占编译时间,函数调用占运行时间(分配内存、保留现场、值传递、返回值)。

7、为防止无限制递归展开,当宏调用自身时,不再继续展开。 如:#define TEST(x) (x + TEST(x))被展开为1 + TEST(1)。

匿名用户
2013-04-19
展开全部
不对,C语言中,宏名没有类型,其参数也没有类型
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DoramiHe
推荐于2018-05-24 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59542
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
宏替换是在预编译时完成的,预编译的功能是将头文件引入,并且将定义的宏按字面完成“傻瓜”式替换(即将符合宏的样式的字符串,替换成宏定义的字符串),宏名没有类型区分,它只是个字符串。因此,D是错的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2018-05-24 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6653万
展开全部
错!宏名没有类型,其参数也没有类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d40cf52
2013-04-19
知道答主
回答量:35
采纳率:0%
帮助的人:17.2万
展开全部
你在说宏函数吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式