考虑以下代码:
#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:注意:预期为“char *”,但参数的类型为“int”