问下c 带参数的宏后边如果有逗号是什么意思,例如int x=3 #define f(x)=x*x,x x最后的f(
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/08 13:45:12
问下c 带参数的宏后边如果有逗号是什么意思,例如int x=3 #define f(x)=x*x,x x最后的f(
那个f(x)是多少呢?为什么?那个#define f(x) x*x,x+x貌似是手机问题,看不到那个加号…
但是我测试的时候为什么f(3)=9,f(3)+f(3)=9,f(3)*f(3)=9,这又是什么原因呢?这样的话不是程序是按照x*x进行的计算么?又怎么会是取右进行运算呢?
那个f(x)是多少呢?为什么?那个#define f(x) x*x,x+x貌似是手机问题,看不到那个加号…
但是我测试的时候为什么f(3)=9,f(3)+f(3)=9,f(3)*f(3)=9,这又是什么原因呢?这样的话不是程序是按照x*x进行的计算么?又怎么会是取右进行运算呢?
![问下c 带参数的宏后边如果有逗号是什么意思,例如int x=3 #define f(x)=x*x,x x最后的f(](/uploads/image/z/15223878-54-8.jpg?t=%E9%97%AE%E4%B8%8Bc+%E5%B8%A6%E5%8F%82%E6%95%B0%E7%9A%84%E5%AE%8F%E5%90%8E%E8%BE%B9%E5%A6%82%E6%9E%9C%E6%9C%89%E9%80%97%E5%8F%B7%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%2C%E4%BE%8B%E5%A6%82int+x%3D3+%23define+f%28x%29%3Dx%2Ax%2Cx+x%E6%9C%80%E5%90%8E%E7%9A%84f%28)
x*x,x+x
逗号表达式 右侧表达式
优先级:*> +> => ,
补充答案:
对于你的提供的
#define f(x) x*x,x+x
int x=3
您提供的表达式f(x)=x*x,x+x根据逗号表达式的右结合性,它取x+x的值为6
您提供的表达式f(x)+f(x)=x*x,x+x+x*x,x+x根据逗号表达式的右结合性,它取x+x的值为6
您提供的表达式f(x)*f(x)=x*x,x+x*x*x,x+x 根据逗号表达式的右结合性,它取x+x的值为6
如果您一定要得出答案为9的话可以写出如下算法:
#define g(x) f(x)=x*x,x+x
int x=3
您提供的表达式f(x)=x*x,x+x等号的优先级高于逗号,f(x)的值为9,g(x)的值为x+x为6
逗号表达式 右侧表达式
优先级:*> +> => ,
补充答案:
对于你的提供的
#define f(x) x*x,x+x
int x=3
您提供的表达式f(x)=x*x,x+x根据逗号表达式的右结合性,它取x+x的值为6
您提供的表达式f(x)+f(x)=x*x,x+x+x*x,x+x根据逗号表达式的右结合性,它取x+x的值为6
您提供的表达式f(x)*f(x)=x*x,x+x*x*x,x+x 根据逗号表达式的右结合性,它取x+x的值为6
如果您一定要得出答案为9的话可以写出如下算法:
#define g(x) f(x)=x*x,x+x
int x=3
您提供的表达式f(x)=x*x,x+x等号的优先级高于逗号,f(x)的值为9,g(x)的值为x+x为6
(35) 有以下程序#define P 3#define F(int x) { return (P*x*x);}main
带参数的宏定义 #define MIN(x,y) (x)
)define f(x)(x*x) 和 define f(x) x*x 之间的差别.
#define X 3 #define Y X*2 #undef X #define X 2 int z=Y; z 的值
若有宏定义# define s(x) x*x-x,设int k=3; 问cout
关于#define f(x) x*x一道题的理解
#define f(x) x*x main( ) { int i; i=f(4+4)/f(2+2); printf("%
#include #define f(x) x*x main() {int a=6,b=2,c; c=f(a)/f(b)
#define f(x) x*x main() {int a=6,b=2,c; C=f(a)?f(b); printf(
这道题就是看不明白(38) 有以下程序#define f(x) x*xmain( ){ int i; i=f(4+4)/
#define f(x) x*x*x main() { int a=3,s,t; s=f(a+1);t=f((a+1))
#define P 3 void F(int x){return(P*x*x);} main() {printf("%d