gpt4 book ai didi

c - 没有定义函数参数类型默认为int?我疯了吗?

转载 作者:行者123 更新时间:2023-11-30 16:59:21 24 4
gpt4 key购买 nike

出于某种奇怪的原因,我用另一种不使用类型的语言复制了一个示例,并且忘记将一个添加到函数定义参数中,但它起作用了。

#include <stdio.h>

char toChar(n) {
//sizeof n is 4 on my 32 bit system
const char *alpha = "0123456789ABCDEF";
return alpha[n];
}

int main() {
putchar(toChar(15)); //i.e.
return 0;
}

我确信某些标准的大多数编译器都将 main 默认为 int (但仅返回),对于其他函数来说这也是正确的行为还是这个实现已定义?看起来很不寻常,我的编译器只是一个稍微过时的 GCC 端口(MinGW)。

最佳答案

K&R 风格的函数声明:

void foo(n) 
int n;
{

}

如果没有指定类型,则默认为 int。这在 C89 中有效,在 C99 中无效

关于c - 没有定义函数参数类型默认为int?我疯了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38179247/

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