将主要功能分开保存在自己的文件中是一种好习惯吗?


14

是否有一个main.c文件只包含main函数,而没有其他函数,以便可以连接所有其他函数,这是一种好习惯吗?

如果没有明确的规则,什么时候这样做而不是什么时候呢?

Answers:


15

理想情况下,所有可以视为可重用代码一部分的工作都应以的形式创建。平衡工作是应分开放置的应用程序main()

但是main(),不必一个人坐下。类似的功能parse_arguments(argc,argv) 应该与main一起使用,而不是分开。


7

我们的编码标准要求main()在main.c中。main.c中的其他方法通常是高级错误处理程序和main的帮助器功能(请参阅@Dipan的答案“ parse_arguments”,以及“ display_help”之类的内容)。

一个好的规则是,当某个功能开始执行超过支持运行中的应用程序的功能并开始执行业务逻辑时,是时候退出main.c了。


4

有两个经验法则:

  1. 读者无需怀疑隐藏了main()的位置。
  2. main()不应包含无关紧要的杂波。

要实现说明main()应该始终位于名为main.c的文件中的编码标准,既是一种好习惯,也是常见的做法。该文件以及main()本身不应包含不必要的混乱情况。

理想情况下,main()和main.c应该仅包含以下内容

  • 包括程序范围的头文件。
  • argv,argc的参数解析代码。
  • 在无主机系统上:关键寄存器设置,堆栈指针设置等。但仅当main()是程序的第一个入口点时。
  • 调用以启动操作系统,或循环调用程序的状态机,或在托管的桌面系统中,创建和初始化与主GUI线程相关的窗口。
  • 从main()调用的内部(静态)函数,处理上述任何问题。
  • 在托管系统上:返回0。

1

分隔文件中的干净入口点使代码流易于理解和维护。我一直有这样的习惯:在一个可以跟踪程序步骤的其他文件中保留一个非常小而简洁的main()函数。仅仅为了清洁起见,最好将其分开。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.