![](/img/trans.png)
[英]Why does c allow main() even when it is not int main() or void main()?
[英]Why does main() have no data type (such as void, int, char) before it in C, as it does in other languages?
在我见过的每个 C 程序中,都会有 main() 函数。 与其他语言(例如 Java 和 C++)不同,它之前没有数据类型。 在 C++ 和 Java 中,main() 至少会有一个 void,如果不是其他一些数据类型。
为什么 main() 在 C 中没有数据类型?
此外,在 Java 中,构造函数没有与它一起使用的数据类型。 如果在函数之前没有使用数据类型,是否可以返回任何值? 或者默认情况下,它们可以返回任何值吗?
main()
是用户定义的函数。
标准明确指出它是一个用户定义的函数:
程序启动时调用的函数名为
main
。 实现声明没有此函数的原型。 它应定义为返回类型为int
且不带参数的:....
main()始终是用户定义的,并且可以通过多种方式进行原型设计(尽管有些人会争论这一点)
(已编辑)
main(void){/*User defined content*/} // K&R implied `int` return type
void main(void){/*User defined content*/} //yeah, yeah, I know
int main(void){/*User defined content*/ return 0;} //commonly used
int main(int argc, char *argv[]){/*User defined content*/ return 0;} //commonly used
我使用 C 编译器的 C99实现。 虽然它很明确的任何警告或错误的非法或恶意语法的通知,也没有标志时,以下情形:
因此,虽然它不严格遵守,但显然不违法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.