第三十三课 main函数与命令行参数
main函数的概念
C语言中main函数称之为主函数
一个C程序是从main函数开始执行的
下面的main函数定义正确吗?四个都正确
33-1 main函数的原型究竟是什么
main函数的本质
main函数是操作系统调用的函数
操作系统总是将main函数作为应用程序的开始
操作系统将main函数的返回值作为程序的退出状态
思考:为什么C编译器支持那么多不同的main函数原型?
商业编译器:宝兰的BCC,微软的VC,GUN的gcc,TI公司的
33-2 main函数的返回值
main函数的参数
程序执行时可以向main函数传递参数
int main()
int main(int argc)
int main(int argc, char *argv[])
int main(int argc, char *argv[], char *env[])
argc - 命令行参数个数
argv - 命令行参数数组
env - 环境变量数组
gcc编译器的常见用法:
gcc a.c b.c c.c
变量 | ||
---|---|---|
argc | ------> | 4 |
argv[0] | ------> | gcc |
argv[1] | ------> | a.c |
argv[2] | ------> | b.c |
argv[3] | ------> | c.c |
33-3 main函数的参数
小技巧
面试中的小问题:main函数一定是程序执行的第一个函数吗?
gcc里有属性关键字,所以不一定是第一个,VC支持,bcc里没有,所以是第一个函数
33-4 gcc中的属性关键字
#ifndef GNUC //gcc里面的属性关键字
#define attribute(x)
#endif
FUNCTION // gcc扩展出来的宏
小结
一个C程序是从main函数开始执行的
main函数是操作系统调用的函数
main函数有参数和返回值
现代编译器支持在main函数前调用其他函数