gpt4 book ai didi

c - 编译时程序的输出

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

我有两个问题。我会把它们分开放置,但第一个真的很小。

问题1)如果不指定函数的返回类型,是否默认为int?

问题2)下面的函数编译会报什么错?

f( int a, int b )
{
int a;
a = 20;
return a;
}

选项是:

1.) Missing parentheses in return statement.
2.) The function should be defined as int f( int a, int b )
3.) Redeclaration of a
4.) None of the above

在我看来,答案应该是 2) 和 3)。

但它只给出了 2) 的答案。为什么会这样?

谢谢。:)

最佳答案

问题1)如果不指定函数的返回类型,是否默认为int?

是的,c89就是这样。但是这个特性在c99和c11中已经不支持了。这就解释了为什么现在在 C 中你必须使用 int f(int a, int b)

C 委员会在 C99 基本原理文档中解释(强调我的):

"A new feature of C99: In C89, all type specifiers could be omitted from the declaration specifiers in a declaration. In such a case int was implied. The Committee decided that the inherent danger of this feature outweighed its convenience, and so it was removed. The effect is to guarantee the production of a diagnostic that will catch an additional category of programming errors."

关于c - 编译时程序的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24724695/

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