簡體   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