考虑以下代码:
#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: 警告:传递参数 1 给 'aaa' 的类型不匹配,整数转换为指针
main.c:3:5: 注意:期望的类型是 'char *',但实际传递的类型是 `int'