考慮下面的代碼:雙括號
#include <stdio.h>
int aaa(char *f, ...)
{
putchar(*f);
return 0;
}
int main(void)
{
aaa("abc");
aaa("%dabc", 3);
aaa(("abc"));
aaa(("%dabc", 3));
return 0;
}
我想知道爲什麼下面幾行:
aaa("abc");
aaa("%dabc", 3);
aaa(("abc"));
運行沒有錯誤,但第四行(如下圖所示):
aaa(("%dabc", 3));
生成以下錯誤:
main.c中:15:2:警告:傳遞 'AAA' 的參數1,使指針從整數,未作鑄造
main.c中:3:5:注:應爲 '字符*',但參數是類型`詮釋」
這些是括號,而不是括號。 – 2012-04-16 13:12:22
@soohjun:修正了它 – JeremyP 2012-04-16 13:26:10