新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > main函数的标准定义

main函数的标准定义

作者:时间:2012-05-30来源:网络收藏

学过C语言的人都知道,是程序启动的入口,每一个C语言程序里有一个,在程序里它是唯独一个不能被其他函数调用的特殊函数。在众多的单片机C语言编译器里对函数的写法都没有明确的要求,写法非常自由,可以写成带形参的函数,也可以写成无形参的函数,还可以写成返回值为任意数据类型的函数。通用的写法都是:void main () {…}。而根据C99的要求,main函数是一个有返回值的函数,而且返回值类型必须为int。下面这段英文描述是从C99的PDF文档上复制下来的:

本文引用地址:http://www.eepw.com.cn/article/171395.htm

5.1.2.2.1 Program startup

The called at program startup is named main.The implementation declares no

prototype for this .It shall be defined with a return type of int and with no

parameters:

int main(void) { /* ... */ }

or with twoparameters (referred to here as argc and argv,though anynames may be

used, as theyare local to the in which theyare declared):

int main(int argc, char *argv[]) { /* ... */ }

or equivalent;9)or in some other implementation-defined manner.

从C99的规定里可以看出,main函数的标准一般为这两种形式:

第一种形式:

int main (void)

{

……

return 0;

}

第二种形式:

int main (int argc, char *argv[ ])

{

……

return 0;

}

第一种main函数不带形参,写起来比较简便。编写单片机C语言程序是不需要通过操纵系统向main函数传递参数的,所以笔者推荐采用第一种标准

标准的意义在于通用,对C语言来讲,符合标准意味着代码的可移植好。如果main函数不符合C99标准也没关系,只要编译器支持,对您的程序没有任何影响。到目前为止,没有哪个C编译器完全遵循C99标准,这都是为了让编译器兼容以前的代码,这也是为什么C标准十几年才修改一次的原因。当然,这并不代表新标准形同虚设,从发展趋势来看,C编译器都会逐渐向新标准靠拢。

既然有了标准我们就应该遵循。我们可以用权威标准来衡量一个代码的优劣,去批判“另类”代码,写出标准的C代码,提高代码的可移植性。



关键词: 定义 标准 函数 main

评论


相关推荐

技术专区

关闭