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```无论何时都不应该使用因为主函数必须有返回值表明程序运行状态。