您目前的位置 : 首页 >> 五十铃卡车 >> 正文

main函数的标准定义

日期:2016-5-25(原创文章,禁止转载)

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

本文引用地址: Program startup

The called at program startup is named e 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代码,提高代码的可移植性。

癫痫患者能生育吗
沈阳儿童医院癫痫科

友情链接:

扑朔迷离网 | 著名的建筑 | 汤唯被禁图片 | 南京元祖蛋糕价格 | 南昌县第二幼儿园 | 精益质量 | 长春到首尔