繁体   English   中英

请解释一下这个C代码片段mult(x,y)x * y?

[英]please explain this c code snippet mult(x,y)x*y?

#include <stdio.h>
#define mult(x,y)x*y  /* what does this mean ?? */

int main() 
{
  int a,b,answer;
  b=5;
  a=5;

  answer=mult(a+b,a+b);
  printf("%d",answer);

  return 0;
}

我正在使用编译器gcc-4.9.2

如果我正确理解,您想知道#define mult(x,y) x*y作用。

这是一个宏定义,在编译期间,编译器将在代码中的任何地方将mult(x, y)替换为x*y

在您的代码中: answer=mult(a+b,a+b);

将替换为: answer=a+b*a+b;

答案将是35

使用宏并确保其正常工作的正确方法是在可能需要的地方添加括号。

因此,您的定义将是: #define mult(x, y) ((x)*(y))以确保结果符合您的期望100

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM