[英]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.