早教吧作业答案频道 -->其他-->
宏常量定义与函数问题#include<stdio.h>#definePI3.14/*********Found************/#defineS(bj)PI*(bj)*(bj)intmain(void){/*********Found************/floatmianJi;mianJi=S(2+3);printf("mianji=%5.2f\n",mianJi);return0;}
题目详情
宏常量定义与函数问题#include<stdio.h> #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这字符串代表什么。
看了 宏常量定义与函数问题#inc...的网友还看了以下:
为啥我写的fortran结果算出来都是零,程序如下.programex01useimslparam 2020-04-07 …
无机化学简明教程课后习题几个问题刚学无机化学,可惜课后习题没答案,有谁知道答案的?下列量子数所表示 2020-04-27 …
近代化学基础急一1.在用量子数表示核外电子运动状态时,写出下列各组中所缺少的量子数.(1)n=3, 2020-06-04 …
证明组合等式C(n,l)•C(l,r)=C(n,r)•C(n-r,l-r),并描述该式的组合意义. 2020-06-12 …
请帮忙把指标公式编个选股公式N:=5;J:=4;A1:=REF(H,N)=HHV(H,2*N+1) 2020-07-09 …
下列各题中黑体加点字的注音全都正确的一项是A.簌簌sù年逾古稀yú鬼鬼崇崇suì婆娑suōB.择菜 2020-07-23 …
给出下列关于互不相同的直线m,n,l和平面α,β的四个命题:①m⊂α,l∩α=A,点A∉m,则l与 2020-07-26 …
设l,m,n为三条不同的直线,a为一个平面,对于下列命题:①若l⊥a,则l与a相交;②若m⊂a,n⊂ 2020-11-02 …
设l,m,n是三条不同的直线,α,β是两个不重合的平面,则下列命题正确的是()A.α∥β,l⊂α,n 2020-11-02 …
下列常用词语中字音有错误的一组是A.羁旅jī放荡不羁jī同仇敌忾kài不卑不亢kàngB.坎坷kě可 2020-11-13 …