C++是否有一个宏定义引入判断如果存在某个头文件则使用这个文件,否则使用其余的头文件

牧童吃五谷 2018-01-09 05:44:56
我的意思是根据判断硬盘中是否存在某一个头文件,做不同的引入头文件,
有点像
#__if_exists "c:\\aaa.h"
#include "c:\aaa.h"
#else
#include "c:\bbb.h"
#endif

...全文
1930 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmf41013 2019-09-25
  • 打赏
  • 举报
回复
引用 楼主 牧童吃五谷 的回复:
我的意思是根据判断硬盘中是否存在某一个头文件,做不同的引入头文件, 有点像 #__if_exists "c:\\aaa.h" #include "c:\aaa.h" #else #include "c:\bbb.h" #endif
在aaa.h里定义一个宏 #define AAA_H_EXIST 在bbb.h里定义一个宏 #define BBB_H_EXIST 如果没有这两个文件就新建一个空的aaa.h、bbb.h 2、在使用这两个头文件中根据 AAA_H_EXIST、BBB_H_EXIST这些宏去分别执行不同的代码 预处理命令是不能判断文件是否存在的,只有在编译时候才能知道,预处理是在编译之前执行的。 无法直接使用宏命令判断文件是否存在
牧童吃五谷 2018-05-26
  • 打赏
  • 举报
回复
其实功能我真的不知道的,我是做了一个程序开发模板,然后别人在模板的基础上做一些更改,由于模板不断升级更新,但别人可能使用的是旧的模板进行开发的,我更新模板的话,希望别人不需要修改程序就可以直接编译了,所以我就模板程序就可能需要判断很多它原来是否有的文件
zilaishuichina 2018-01-11
  • 打赏
  • 举报
回复
lz的这个需求本身 就是一个伪需求 引入不同的头文件,只有2种情况, 1,这两个头文件是一样的,只是放的路径不一样。也就是说楼主不知道想要的头文件可能在哪个路径下,所以想用这样的宏去猜,如果a路径下有,就用a路径下的,如果a路径下没有,就用b路径下的,类似这种。 对于这种情况,lz还是先手动确认路径比较好,其次使用相对路径会比使用绝对路径好。 2,这两个头文件是不一样的,也就是说,你接下来需要用到的变量/函数,在这两个不同的头文件中,有不同的实现,是不一样的功能。 对于这种情况,既然是不一样的功能,那么lz你编译的时候,或者说你决定写这个代码的时候,你总归是要确认,你想实现的这个程序的功能的到底是哪一种吧。 总不能说,你写一个程序,这个程序的功能是不确定的,到底实现什么功能取决于你有哪一份头文件,有a.h,这个程序就实现a的功能,如果没有就实现b的功能? 既然程序的功能是确定的,那么需要include哪个头文件,就也是确定的
赵4老师 2018-01-10
  • 打赏
  • 举报
回复
推荐使用软件Everything
paschen 版主 2018-01-09
  • 打赏
  • 举报
回复
这种外部的功能IDE没法帮你完全考虑,你可以自己开发个插件什么的来实现
开源学开源 2018-01-09
  • 打赏
  • 举报
回复
应该没有吧!
牧童吃五谷 2018-01-09
  • 打赏
  • 举报
回复
有点类似,但还不够,我要判断的标准是是否存在文件
  • 打赏
  • 举报
回复
有类似的,比如说,软件开启调试或关闭调试功能
#ifdef DEBUG_ON_RUN
#define ON_DEBUG 1
#include "debug.h"
牧童吃五谷 2018-01-09
  • 打赏
  • 举报
回复
或者采用某种方法能够解决就行了
paschen 版主 2018-01-09
  • 打赏
  • 举报
回复
没见过类似这种的用法呢

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧