C++: main的正确打开方式
编程时最容易忽略的main函数到底应该怎末写才是最安全,最合法,最完美的。
C++标准
最普遍的情况来说,C++标准中明确表示标准的main函数返回值必须为int类型;无参写法为int main(void);有参写法为int main(int argc, char* argv[])
![]() |
![]() |
main函数的常见情况及说明
第一种:不推荐
//不声明是否传入参数:C89允许,C99不允许 int main() { return 0; }
第二种:推荐
//最推荐的标准mian:无参数的写法,也是作者最常用的写法,C89和C99都允许,不知道为什莫使用的人很少 int main(void) { return 0; }
第三种:不推荐
//光秃秃的main:不表明返回值=int main,C89的标准,C99不允许 main() { return 0; }
第四种:禁止使用
//void main:不接受任何参数,不返回任何参数,最垃圾的写法,C++标准中从来没有定义此种格式 void main() { }
第五种:非必要不推荐
//标准写法扩展:C89和C99都允许,通常为外部提供外部接口 int main(int argc/*命令行总的参数个数*/, char** argv/*argc个参数*/)//int main(int argc, char* argv[]) { return 0; } /* 针对此种用法,作者也没见过,查阅相关博主文章后,简略如下: argc用来表示你在命令行下输入命令的时候,一共有多少个参数。比方说你的程序编译后,可执行文件是test.exe D:\tc2>test 这个时候,argc的值是1 但是如果为 D:\tc2>test.exe myarg1 myarg2 就是 命令名 加上两个参数,一共三个参数 argc的值是3,argc[0]的值是”test”,argc[1]的值是”myarg1”,argc[2]的值是”myarg2”。 argc[]一般用来为程序提供非常重要的信息,如:数据文件名,等等。 如:copy a.c b.txt 这个时候,a.c和b.txt就是所谓的“非常重要的信息”。不指定这两个文件,你没法进行拷贝。 当你的程序用到argc和argv这两个参数的时候,可以简单地通过判断argc的值,来看看程序的参数是否符合要求 原文链接:https://blog.csdn.net/mengyandelove/article/details/8228550 */
第六种:不推荐
//标准写法扩展:C89和C99都允许,多源于编译器的扩展,不常用 int main(int argc, char** argv, char** envp) { return 0; }
总结
因此,在开发中,除非极其要求移植性使用第五种写法外,我们一般还是使用第二种的写法,许多大神也提到,这种写法可能是因为教材的原因导致的,这里我们也不去探究了,没意义。
本文来自博客园,作者:{张一默},转载请注明原文链接:https://www.cnblogs.com/YiMo9929/p/16754395.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)