c语言中,main是不是预定义标识符? |
您所在的位置:网站首页 › c语言中u是什么 › c语言中,main是不是预定义标识符? |
C语言中,main不是“关键字(keyword)”。 更加细节一些,main也不是“预定义(pre-defined)”标识符。而是一个“预声明(pre-declared)”标识符。 一般而言,在C中,当使用“define”或者“pre-define”这个词汇时,表示有内存分配的操作;而使用“declare”或者“pre-declare”时,意味着仅仅是说有这个东西但是不涉及内存分配。 main为什么是“预声明(pre-declared)”标识符呢?参见 stackoverflow 上的下面这个问题: Where is main stored & is main a keyword? I do know that main() is a method but I am asking about "main"大概意思是: 在C语言中,你写的代码要被链接到一个很小的运行时库中,这个库中有程序的真正入口点。这个小运行时库先做一些事情,比如建立堆栈等,然后它会调用一个函数叫做“main”。这个调用是硬编码在这个小运行时库中的。也就是说,main函数这个名字,已经被运行时库提前使用了(调用)。所以你必须写一个main函数。这个main也就是“预声明(pre-declared)”的标识符。 然而,在工程上,我们并不去区分(懒得区分)这个main到底是keyword还是预声明标识符。反正我们不会在main函数名字之外使用“main”这个标识符。 与main有关的概念是程序执行的“入口点”(Entry Point)。 在下面这篇维基百科文章中,说明了各种语言的入口点 https://en.wikipedia.org/wiki/Entry_point在很多类C语言中,都有一个函数名字叫做 main。main可以看作是“用户代码”的显式入口点,但实际上,很多时候并不是用户程序的入口点。 C、C++、D、Rust、Kotlin等编程语言中都有一个函数叫做“main”; Java中也有个函数叫做main,但它是一个静态方法; C#中有个静态函数叫做 Main,首字母大写了。 go语言中,程序从 main 包的 main 函数开始执行。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |