gpt4 book ai didi

c - 返回值的函数定义中的缺失 - 什么类型的错误?

转载 作者:太空宇宙 更新时间:2023-11-04 07:45:42 25 4
gpt4 key购买 nike

假设我有以下函数定义:

int foo () {
int x;
x = x + 2;
}

如你所见,这个函数被声明为返回一个int值,但是没有return语句,它也没有获取任何参数。

鉴于上面定义的这个函数,它构成了什么类型的错误 - 句法?语义?运行 ?不是任何错误的类型?

最佳答案

这不被认为是错误的语法。按照'c'标准就可以了。因此它可以编译,但结果将不可预测。

如评论中所述,这只是糟糕的编程。现代编译器可以检测程序的此类常见问题。因此,使用 gcc -Wall,您可以获得以下针对缺少返回语句(控制到达 ...)和未初始化变量的诊断。

%> gcc a.c -Wall
a.c: In function 'foo':
a.c:1:1: warning: control reaches end of non-void function [-Wreturn-type]
int foo () { int x; x=x+2;}
^~~
a.c:1:22: warning: 'x' is used uninitialized in this function [-Wuninitialized]
int foo () { int x; x=x+2;}
~^~~~
a.c:1:18: note: 'x' was declared here
int foo () { int x; x=x+2;}

关于c - 返回值的函数定义中的缺失 - 什么类型的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57376096/

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