gpt4 book ai didi

c - 函数调用的双括号?

转载 作者:太空狗 更新时间:2023-10-29 15:11:59 25 4
gpt4 key购买 nike

考虑以下代码:

#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: warning: passing argument 1 of 'aaa' makes pointer from integer without a cast

main.c:3:5: note: expected 'char *' but argument is of type `int'

最佳答案

声明

aaa(("%dabc", 3));

使用返回值 3 的参数 ("%dabc", 3) 调用函数 aaa

查找 comma operator获取更多信息。

关于c - 函数调用的双括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10174764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com