我正在使用 C(不是 C++),我不确定如何避免使用全局变量。
我对 C、它的语法以及如何编写基本应用程序有相当不错的掌握,但我不确定构建程序的正确方法。
真正的大型应用程序如何避免使用全局变量?我很确定总是至少需要一些,但是对于用 C 编写的大型游戏和其他应用程序,最好的方法是什么?
有没有我可以看的严格用 C 语言编写的好的开源软件?我无法想到任何东西,它们中的大多数似乎都是用 C++ 编写的。
谢谢。
编辑
这是一个我将在简单的 API 挂钩应用程序中使用全局变量的示例,它只是另一个进程中的 DLL。
这个应用程序,具体来说,挂钩在另一个应用程序中使用的 API 函数。它通过使用 WriteProcessMemory 覆盖对原始文件的调用,并改为调用我的 DLL 来实现这一点。
但是,当取消挂钩 API 函数时,我必须写回原始内存/机器代码。
所以,我需要为那个机器代码维护一个简单的字节数组,每个被钩住的 API 函数一个,而且有很多。
// Global variable to store original assembly code (6 bytes)
BYTE g_MessageBoxA[6];
// Hook the API function
HookAPIFunction ( "user32.dll", "MessageBoxA", MyNewFunction, g_MessageBoxA );
// Later on, unhook the function
UnHookAPIFunction ( "user32.dll", "MessageBoxA", g_MessageBoxA );
对不起,如果这令人困惑。