void 这是针对C语言C语言C语言

void,无类型
1、函数参数为空,定义函数是,可以用void修饰:int fun(void)
2、函数没有返回值:void fun(void)
3、不能定义void类型的普通变量:void a;//err无法确定类型,不同类型分配空间不一样
4、可以定义void *p; //ok 32位永远是4个字节,64位永远是8个字节
5、数据类型本质:固定内存大小别名
6、void *p万能指针,函数返回值,返回参数    //很灵活,只要是指针类型都可以用

「C语言」int main还是void main?
先简而言之
1.void 和 int 表明声明不同的主函数返回值,不声明则默认返回值为int整型。
2.int main可移植性强。
3.C语言从来没声明过```void main```,只声明过```main()```。
3.抛弃一切用```void main```编写C程序的习惯!
稍微深入
main函数,又称主函数,作为绝大大部分C程序唯一的入口,是要求有返回值的,该返回值返回给操作系统来表明改程序的执行状况。返回0代表程序正常执行成功,返回非0值代表程序异常结束,因此返回值需要是int整型,于是有了```int main()```的规范。如果使用```void main```,既声明主函数没有返回值的话,程序虽能编译、运行成功,却不利于操作系统判断其状态,这对于由很多C程序构成的大型项目来说是可能会是致命的。

尤其从c99标准(1999年制定的官方C语言标准第二版)开始必须使用```int main```,如果没加```return 0;```语句C99要求编译器自动添加(自己写上是个好习惯)。只声明```main```的话系统默认为```int main```。```void main```无论何时都不应该使用因为主函数必须有返回值表明程序运行状态。

重点再补充:void main(); 的这种写法是错的,在C语言中根本没有这种写法的,之所以有些代码的写法为 main(); 的原因是对于编译器回在mian();前面加上int,原因是是函数的返回值是0或非0的整数会自动加上int。

 

猜你喜欢

转载自blog.csdn.net/xlh006/article/details/81537856