为什么将此双精度型变量作为函数参数传递时默认为int?

问题描述 投票:2回答:3

我正在学习C,并试图帮助调试好友代码。他正在全局范围内定义他的函数参数,然后像这样将它们传递到函数def中:

#include <stdio.h>

double x;


double myfunc(x){
    return x;    
}

void main(){

}

我理解这是错误的,但不是为什么出现以下错误:

main.c:14:8: warning: type of ‘x’ defaults to ‘int’ [-Wimplicit-int] 

有人可以帮助我了解计算机如何解释此代码吗?

c variable-declaration function-parameter
3个回答
6
投票

他正在全局范围内定义他的函数参数


1
投票

全局变量


0
投票

您的朋友使用的是较旧的K&R样式的函数定义,其中参数类型与参数列表分开指定。如果正确完成,它将看起来像这样:

© www.soinside.com 2019 - 2024. All rights reserved.