水木社区手机版
首页
|版面-编程技术(Programming)|
新版wap站已上线
返回
1/1
|
转到
主题:C语言中不声明在什么情况下会挂掉?
楼主
|
threebird
|
2020-09-19 08:54:23
|
只看此ID
//a.c
void fac(){
//....
}
//b.c
int main(){
fac();
}
gcc a.c b.c -o main
只有警告,没报错,能正常执行。
--
FROM 118.81.85.*
1楼
|
dormouseBHU
|
2020-09-19 09:09:08
|
只看此ID
fac加个参数就不行了
【 在 threebird 的大作中提到: 】
: //a.c
: void fac(){
: //....
: ...................
--
FROM 120.244.156.*
2楼
|
threebird
|
2020-09-19 09:15:29
|
只看此ID
加参数也行,c的语法很松
【 在 dormouseBHU 的大作中提到: 】
: fac加个参数就不行了
--
FROM 118.81.85.*
3楼
|
z16166
|
2020-09-19 09:51:09
|
只看此ID
https://stackoverflow.com/questions/13950642/why-does-a-function-with-no-parameters-compared-to-the-actual-function-definiti
老的规定导致的。
新的代码都应该加上严格的原型声明才是好的搞法(要不然你为啥用c/cpp,还不如用脚本语言),也就是返回值、参数都要明确指定,不要用默认的int返回值,不要写空参数列表(没参数就一定要写void)。gcc编译时用-Wstrict-prototypes来保证这一点。
--
修改:z16166 FROM 125.33.227.*
FROM 125.33.227.*
4楼
|
qyli
|
2020-09-19 11:57:19
|
只看此ID
函数有返回值的话编不过。
传参有浮点数的时候会出错。
【 在 threebird 的大作中提到: 】
: //a.c
: void fac(){
: //....
: ...................
--
FROM 112.32.15.*
5楼
|
codeAnimal
|
2020-09-20 17:47:08
|
只看此ID
fac返回个double试试,看看返回值能不能被正确处理
【 在 threebird (飞剑仙朱亮) 的大作中提到: 】
: //a.c
: void fac(){
: //....
: ...................
--
FROM 117.89.209.*
6楼
|
threebird
|
2020-09-24 08:18:42
|
只看此ID
这就不行了
【 在 codeAnimal 的大作中提到: 】
: fac返回个double试试,看看返回值能不能被正确处理
:
--
FROM 171.116.82.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版