相关疑难解决方法(0)

为什么没有参数的函数(与实际函数定义相比)编译?

我刚刚遇到某人的C代码,我很困惑为什么要编译.有两点我不明白.

首先,与实际函数定义相比,函数原型没有参数.其次,函数定义中的参数没有类型.

#include <stdio.h>

int func();

int func(param)
{
    return param;
}

int main()
{
    int bla = func(10);    
    printf("%d", bla);
}
Run Code Online (Sandbox Code Playgroud)

为什么这样做?我已经在几个编译器中测试过,它运行正常.

c parameters function-parameter function-prototypes

385
推荐指数
8
解决办法
5万
查看次数

K&R中的C函数声明

我不熟悉K&R风格的功能声明.

编译之后,带有警告(仅与main的返回值相关-Wall)但是使用的变量的数据类型是什么?

main(a, b, c, d){
    printf("%d", d);
}

foo(a, b){
     a = 2; 
     b = 'z';
}
Run Code Online (Sandbox Code Playgroud)

如果这是一个问题,请在评论部分提供链接.我找不到类似的东西.

编辑

我刚刚遇到了一个混淆的C代码,它使用了这些代码.
但我可以向你保证,我不会在C编程中使用这样的语法.

c

11
推荐指数
2
解决办法
3875
查看次数