我开始学习openGL,并且也是第一次开始在多个源文件中拆分我的项目。因此我仍然有点困惑,有时我觉得我的变量分散,特别是因为openGL需要广泛使用全局变量。目前我得到了大约15个文件。
我的主要问题是某些变量例如由某些模块共享,而其他一些变量仅由少数其他模块共享。如果我将所有这些变量放在common.h文件中会出现任何问题(性能方面),因为并非所有模块都会使用所有变量吗?
使用上面的方法我也有一个问题,如果我使用在其他头文件中定义的类型,我也必须包含它们。我也可以使用'#if(定义'宏',但这似乎不是最合适的方法。
答案 0 :(得分:0)
对未使用的变量包含extern
声明不应该导致性能问题(绝对不是在运行时,但它会在编译时引入一个不知不觉的小开销)。
我不认为您需要包含标头以引入数据类型定义是一个问题。这只是C语言工作方式的一部分。您可以通过确保所有标头都自给自足来让自己更轻松。也就是说,如果标头使用特定的数据类型,则该标头应包含定义该类型的标头。这样,您的.c文件就不必担心分析标头并弄清楚需要包含哪些其他标头。不自给自足的标题也会导致代码构建方式不同(或根本不构建)的问题,具体取决于包含标题的顺序。