C 多线程项目结构
我正在开发一个涉及三个线程之间交互的项目。 线程函数的代码非常长,将所有内容都放在一个文件中似乎不是一个好主意,因为它变得不可管理 单独编译线程函数,然后链接所有内容是一个有意义的解决方案吗 显然,线程之间共享了很多数据结构 将项目分割成更多文件的正确方法是什么 单独编译线程函数,然后链接所有内容是一个有意义的解决方案吗 一般来说:是的 将公共内容(如类型和定义)放入头文件(.h),然后由需要它们的模块(.c)包含C 多线程项目结构,c,multithreading,project-structure,C,Multithreading,Project Structure,我正在开发一个涉及三个线程之间交互的项目。 线程函数的代码非常长,将所有内容都放在一个文件中似乎不是一个好主意,因为它变得不可管理 单独编译线程函数,然后链接所有内容是一个有意义的解决方案吗 显然,线程之间共享了很多数据结构 将项目分割成更多文件的正确方法是什么 单独编译线程函数,然后链接所有内容是一个有意义的解决方案吗 一般来说:是的 将公共内容(如类型和定义)放入头文件(.h),然后由需要它们的模块(.c)包含 每个模块还获得其单独的头文件,为其功能提供原型。这里是我最近做的一件事,它与您的
每个模块还获得其单独的头文件,为其功能提供原型。这里是我最近做的一件事,它与您的要求类似。我采用的方法可能对你有所帮助。它是用C++完成的,但是在C.
main
在一个单独的文件中运行,并且该文件除了main
之外没有太多内容(除了一些静态全局常量)c
中实现,并且最终会进行大量的复制,那么最好将所有特定于线程的实现放在一个文件中,并使用静态函数(用于向世界其他地方隐藏信息)
话虽如此,您可能希望首先从几个文件开始-一个驱动程序-一个实现
main
和
-实现所需功能的另一种方法(对于两个线程可能是)
然后在开始添加更多代码时开始分离。这将帮助您开始编写一些代码,而无需花费大量时间思考如何组织代码。记住,第一次把事情做好通常是很困难的,所以一个有价值的想法是先做一些有效的事情,然后再把事情转过来
始终开始编写Makefile
也是一个好主意。当你移动东西的时候建造东西会容易得多
希望有帮助 可以将线程视为一个模块,即使没有其他两个线程,单个线程也毫无意义?@Luc:因此,用C特定术语“翻译单元”替换“模块”。