求助

baidu_27697039 2018-09-18 05:36:10
可否有方法实现这个功能

#ifndef a
#include "b.h"
#else
#include "c.h"

scanf("a = %d",&a);
当a = 1 时,执行#include “b.h”
a = 0时 执行 #include “c.h”
...全文
184 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
面向上司编程 2018-09-19
  • 打赏
  • 举报
回复
可以编译的时候,添加命令来指定
NexTor 2018-09-19
  • 打赏
  • 举报
回复
你想通过scanf输入的a的值动态来判断include哪个头文件,貌似是不行,ifdef是编译时候确定的
棉猴 2018-09-19
  • 打赏
  • 举报
回复
#ifdef a==1
#include "b.h"
#ifdef a==0
#include "c.h"
#endif
沐雨青城 2018-09-19
  • 打赏
  • 举报
回复
#ifndef这类语句主要用在编译选择的时候,通过定义的宏来选择编译的内容,你这个用scanf函数是想根据运行时,来决定include哪个文件,应该是不行的,而且你的scanf("a = %d",&a);中的a是需要指定变量类型的,应该编译都过不了的吧。
不过可以通过在代码里使用#define 和#undef来开关编译选项,来选择#include文件的时机。
636f6c696e 2018-09-19
  • 打赏
  • 举报
回复
ifndef是判断有没有宏定义,而不是a的值是否为0
赵4老师 2018-09-19
  • 打赏
  • 举报
回复
了解一下代码生成技术。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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