
main函数的返回值返回给调用它的shell
比如在vim里,用!调用外部一个命令(对应一个程序),会得到一个shell返回值这里的返回值就是main函数的返回值
返回值只是标记程序结束时的状态,自然可以为其它基本类型
gcc中,如果返回值不是int,会给一个warning
warning:
return
type
of
'main'
is
not
`int'
提示main函数的返回值类型必须为int型。同时要在main函数结束执行前添加诸如return 0,之类的语句。
void main() 是C++语言的话这类型是不标准的,改为int main()即可。
任何时候都可以用int main(),所以建议不用void main(),用C++编译器编译C一般不会有什么问题,因为C++是兼容C的。
总结一下就是,C语言标准允许main函数为void类型,按照C++的标准中main必须是int类型,如果你的软件不兼容c那么就只能写成int main(),兼容的话你也可以写成void main也是没有错误的,c中,main的格式,void main (){undefined。
void main()表示函数无返回值,就是说在程序的结尾处不需要加上return 0。而return是在函数体中,用来返回特定值的。
一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一个以main为名,这个函数称为主函数,主函数是整个程序的入口。
基本数据类型:
1、void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。(C89标准新增)
2、char:字符型类型数据,属于整型数据的一种。(K&R时期引入)
3、int:整型数据,表示范围通常为编译器指定的内存字节长。(K&R时期引入)
4、float:单精度浮点型数据,属于浮点数据的一种。(K&R时期引入)
5、double:双精度浮点型数据,属于浮点数据的一种。(K&R时期引入)
6、_Bool:布尔型。(C99标准新增)
7、_Complex:复数的基本类型。(C99标准新增)
8、_Imaginary:虚数,与复数基本类型相似,没有实部的纯虚数。(C99标准新增)
9、_Generic:提供重载的接口入口。(C11标准新增)
粗略的角度来讲
A、B都是正确的,
因为,A:main()可以在库函数后面
可以在自定义函数的后面、
可以在自定义函数的前面
B: 的确,系统调用的库函数必须要在main()的前面
准确的来说:A、B都不是很正确,都存在描述性错误、
因为:
首先,main()的位置不是任意的,必须遵守C语言书写的一些基本规范
例如: int a=1;
printf("helle world");
main()
{
printf("%d",a);
}
这样的main()位置就不对
其次,系统调用的库函数必须写在程序的开头
例如:
#include “stdioh”
main()
{
printf("hello world!")
}
最后,main()的位置变化对程序的影响
例如, #include “stdioh”
int a=1;
printf("helle world");
main()
{int b=2;<br/> a=b;<br/> printf("%d",a);<br/> }
与下面的程序是不一样的程序
#include “stdioh”
main()
{int a=1;<br/> printf("helle world");<br/> printf("%d",a);<br/> }
在第一个例子中a=1,是一个全局变量
在第二个例子中,a=1是一个局部变量
导致最后两个程序输出的结果也不一样
回答结束
最后,你问的问题是不是有点简单,有点片面了,该好好学习啊
有空多交流啊
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)