gpt4 book ai didi

c - 调用者/被调用者中不匹配签名的 gcc 函数调用语义

转载 作者:行者123 更新时间:2023-12-04 11:21:27 26 4
gpt4 key购买 nike

我在 gcc 中发现了一些奇怪的东西,并希望得到一些输入,无论是功能还是怪癖。
本质上我在 func.c 中定义了一个函数

void f(int a, int b, FILE* f)  
{
...
...
}

没有对应的头文件。但是当我调用 f(a,b) 时 gcc 没有给出任何警告,而 gdb 显示 f 是用三个参数调用的?为什么会这样?填充第三个参数的语义是什么。

最佳答案

如果 f() 在任何地方都没有声明并且没有在当前编译单元中定义,编译器假定 f() 返回 int 并且可以接受任意数量的参数。

我知道这很奇怪,但在过去,这可能是一种减少必须包含的头文件数量并因此加快编译速度的方法。

关于c - 调用者/被调用者中不匹配签名的 gcc 函数调用语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4127439/

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