我需要创建一些 API,通过调用一个函数,将调用当前操作系统的正确函数。
所以我同意了:
主.cpp:
#include "api.h"
int main() {
helloWorld();
return 0;
}
api.h:
void helloWorld();
api.cpp:
void helloWorld() {
#ifdef __gnu_linux__
printf("Hello World of Linux");
#endif
#ifdef WIN32
printf("Hello World of Windows");
#endif
}
但这并不能满足我。当我将拥有大功能时,例如在 Linux 下获取进程的所有子进程以及许多其他功能时,我将遇到空间问题,以及维护代码的可见性问题。
我尝试根据底层操作系统包含不同的标头,但这效果不佳,我不能有两个标头(一个用于 Windows,一个用于 Linux)和只有一个 C++ 文件。
那么,您知道如何将 Linux 和 Windows 的代码分开,这样我就得到了两个文件(一个仅适用于 Linux,一个仅适用于 Windows)和一个带有#ifdef
条件的头文件?我无法让它工作......