具有相似功能但名称不同的头文件
Headers with similar functionality but different names
我在多个平台上有共同的代码,这些代码依赖于具有某些函数名称的标头为#include
d。
问题是[或多或少]相同的头文件在每个平台上有不同的名称。我不能简单地在任何平台上重命名头,因为它是一个标准的#include
。建议用什么方法来保持这种常见?
#ifdef PLATFORM_A
#include <platformA>
#endif
#ifdef PLATFORM_B
#include <platformB>
#endif
//....
头掩蔽
通用代码:
#include "common.h"
平台A的"common.h":
#include <platformA>
平台B的"common.h":
#include <platformB>
还是别的什么?
每种方法的优缺点是什么,在什么情况下我应该使用一种方法而不是另一种方法?
实际上,我会将这两种方法结合起来。不要在代码中一遍又一遍地使用方法A,这会使维护变得困难,你应该为每个依赖于平台的头添加一个通用头,并用它来包装特定于平台的include:
common_iostream.hpp:
#ifndef COMMON_IOSTREAM_INC
#define COMMON_IOSTREAM_INC
#ifdef PLATFORM_A
#include <iostream>
#endif
#ifdef PLATFORM_B
#include <iostream.h>
#endif
#endif
这样你就有了一组很好的common_*.hpp
头,你的代码保持干净,加上你没有把它分成不同的platformA/common.hpp
, platformB/common.hpp
等。
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 在C++中查找文件
- c++库的公共头文件中应该包含什么
- 用c++从输入文件中读取另一行
- 仅一个功能的链接错误.在同一类和CPP文件中具有相似签名的其他函数工作正常
- 如何在C 项目中包含具有相似名称的标题文件
- 对于几乎相似的内容,请使用qml文件
- 具有相似功能但名称不同的头文件
- 如何生成许多相似的可执行文件