离石做网站,校园网二级网站的建设,做社交网站 投入,如何撰写网站建设方案书C语言进阶课程学习记录-main函数与命令行参数 main函数验证以下4中定义是否正确实验-main的返回值cmd窗口 实验-main的输入参数cmd窗口 在main函数执其执行的函数实验-程序执行的第一个函数gcc编译器cmd窗口bcc编译器 小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程图片全部来源于课程PPT仅用于个人学习记录 main函数
C语言中的main函数称为主函数 一个C程序是从main函数开始执行的
验证以下4中定义是否正确
int main()
{}
void main()
{}
main()
{}int main()
{return 0;}以上四种gcc编译、运行都没有报错
实验-main的返回值
//33-2-A.c
#include stdio.hint main()
{printf(Im A!\n);return 0;
}
//33-2-B.c
#include stdio.hint main()
{printf(Im B!\n);return 99;
}cmd窗口
D:\Users\cyz1994\Cxuexi\gccLearn\33-1gcc 33-2-A.cD:\Users\cyz1994\Cxuexi\gccLearn\33-1AA
Im A!D:\Users\cyz1994\Cxuexi\gccLearn\33-1gcc 33-2-B.cD:\Users\cyz1994\Cxuexi\gccLearn\33-1BB
Im B!D:\Users\cyz1994\Cxuexi\gccLearn\33-1echo %ERRORLEVEL% //Windows环境变量它包含最近执行的程序或批处理命令的退出代码
99D:\Users\cyz1994\Cxuexi\gccLearn\33-1AA
Im A!D:\Users\cyz1994\Cxuexi\gccLearn\33-1echo %ERRORLEVEL%
0D:\Users\cyz1994\Cxuexi\gccLearn\33-1AABB
Im A!
Im B!
//AA的返回值为0 执行了BD:\Users\cyz1994\Cxuexi\gccLearn\33-1BBAA
Im B!//BB的返回值不为0,不执行AA实验-main的输入参数
#include stdio.hint main(int argc, char* argv[], char* env[])
{int i 0;printf( Begin argv \n);for(i0; iargc; i){printf(%s\n, argv[i]);}printf( End argv \n);printf(\n);printf(\n);printf(\n);//printf( Begin env \n);for(i0; env[i]!NULL; i){//printf(%s\n, env[i]);//输出环境变量}//printf( End env \n);return 0;
}
cmd窗口
D:\Users\cy\Cxuexi\gccLearn\33-1C.exeBegin argv
C.exeEnd argv
D:\Users\cy\Cxuexi\gccLearn\33-1c.exe a.c b.cBegin argv
c.exe
a.c
b.cEnd argv 在main函数执其执行的函数
main函数不一定是程序执行的第一个函数 gcc编译器的属性关键字实现先执行其他函数再执行main函数
实验-程序执行的第一个函数
gcc编译器
#include stdio.h#ifndef __GNUC__
#define __attribute__(x)
#endif__attribute__((constructor))
void before_main()
{printf(%s\n,__FUNCTION__);
}__attribute__((destructor))
void after_main()
{printf(%s\n,__FUNCTION__);
}int main()
{printf(%s\n,__FUNCTION__);return 0;
}cmd窗口
D:\Users\cyy\Cxuexi\gccLearn\33-1gcc 33-4.cD:\Users\cy\Cxuexi\gccLearn\33-1a
before_main
main
after_mainbcc编译器
#include stdio.h#ifndef __GNUC__
#define __attribute__(x)
#endif__attribute__((constructor))
void before_main()
{printf(%s\n,before_main);
}__attribute__((destructor))
void after_main()
{printf(%s\n,after_main);
}int main()
{printf(%s\n,main);return 0;
}小结
一个C程序是从main函数开始执行的 main函数是操作系统调用的函数 main函数有参数和返回值 现代编译器支持在main函数前调用其它函数