【发布时间】:2020-02-28 10:04:14
【问题描述】:
如果没有函数原型,则函数在其首次出现在表达式中时被隐式声明。
在 C 语言中,如果函数返回 int 以外的任何内容,最好在调用者函数中声明函数,如第一个代码示例。
但是你总是受制于编译器编写原型,原因是他不知道函数是谁,因为它是在main()函数下面声明的。
问题是:这两者是等价的吗?是否编写原型或显式声明 main() 中的函数会返回 wanted 结果?如果您总是约束使用这两种方式之一,它怎么会返回一个错误的值?
- 如果函数在与调用函数相同的脚本中声明(此处为
main())- 原型
- 在
main()中明确声明函数。
- 如果函数在另一个文件中声明
- 原型
- 在
main()中明确声明函数
例如:
int main()
{
double doSomething(int a);
printf("%d", doSomething(2) );
}
double doSomething(int a)
{
return a * 2.0;
}
对
double doSomething(int a);
int main()
{
printf("%d", doSomething(2) );
}
double doSomething(int a)
{
return a * 2.0;
}
这个帖子几乎是我需要的,但它并没有回答我所有的问题。 C language - calling functions without function prototype
【问题讨论】:
标签: c function scope declaration