C语言基础知识--main函数
首先来看一下一个c语言main函数的标准形式:
#include <stdio.h>
int main(int argc, const char* argv[])
{
printf("hello pig!");/*代码实现*/
return 0;
}
#include<stdio.h>这是一个头文件,包含的是C程序运行的C语言的库函数。int代表的是main函数的返回值是一个int, argc代表着main函数接受argc个参数,这些参数以字符串的形式存储在argv数组中,这一部分目前可以省略,因此大多数时候我们看到的main函数是这样的
int main()
{
printf("hello pig!");/*代码实现*/
return 0;
}
Return 0代表着将0返回给操作系统,在UNIX中,return 0代表着没有出错,带返回一个非0值得时候,意味着出错了。
那我们再思考一下,main函数是个啥呢?为什么一定要main,改成其他的行不?我们来试一试!
#include <stdio.h>
//int main()
int mymain() /*自定义main函数*/
{
printf("hello pig!");/*代码实现*/
return 0;
}
这里我们自定义一个main函数,然后编译一下,报错
C语言并没有说c程序的入口一定要有main函数,但是c的编译器在编译完成之后需要链接成可执行文件,既然是可执行文件,那么链接的时候就需要知道程序的入口是什么,默认的程序入口就是卖main,那我们可以修改吗?当然可以!我们可以自己指定程序的入口函数!
执行
gcc hello.c -e mymain -nostartfiles
-e参数指定我们的程序的入口
-nostartfiles 连接的时候不使用标准系统的启动文件
可以看到生成了一个可执行的文件a.out
,