宏常量定义与函数问题

系统教程 行业动态 更新时间:2024-06-14 17:03:54
宏常量定义与函数问题 #include #define PI 3.14 /*********Found************/ #define S(bj) PI*(bj)*(bj) int main(void) { /*********Found************/ float mianJi; mianJi = S(2+3); printf("mian ji=%5.2f\n", mianJi); return 0;} 请问#define S(bj) PI*(bj)*(bj)是什么意思,为什么改成#define S(bj) PI*bj*bj答案就不对了

最满意答案

带参宏定义  c语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。 带参宏定义的一般形式为: #define 宏名(形参表) 字符串  在字符串中含有各个形参。 带参宏调用的一般形式为: 宏名(形参表)   例如: #define M(y) ((y)*(y)+3*(y)) /*宏定义*/ k=M(5); /*宏调用*/ 在宏调用时,用实参5去代替形参y,经预处理宏展开后的语句为: k=5*5+3*5 -------------------- #define S(bj) PI*(bj)*(bj) 中 3个bj都是参数,在运行是会有数据代替。电脑会认为是 PiX5X5. #define S(bj) PI*bj*bj 中后2个bj没有括号所以只是字符而已,运行时会报错.因为电脑不认识PI*bj*bj这字符串代表什么。

更多推荐

本文发布于:2023-04-24 14:08:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/dzcp/a1325ec3bcc610000912ff037e142dd7.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:常量   函数   定义

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!