c++ - 尽管 if 子句为假,但为什么会引发错误?
问题描述
为什么在这段代码中抛出错误?
对象属性具有以下值(由方法输出addGroup()
):
####### ADDGROUP ######
isBasic: 0
types[0]: Z
####### ADDGROUP ######
因此,由于isBasic
是 false 和types[0]
= Z(如上面的输出所示),因此在我的理解中不应抛出错误:
void addGroup(int newGroup) {
cout<<"####### ADDGROUP ######"<<endl;
cout<<"isBasic: ";
cout<<isBasic<<endl;
cout<<"types[0]: ";
cout<<types[0]<<endl;
cout<<"####### ADDGROUP ######"<<endl;
if(isBasic == true && types[0] != 'Z') {
#error "Sensor defined as basicComponent, type(s) already set. Basic component is either group- OR type-specific but never both!"
}
for (int i=0; i < 3; i++){
if(groups[i] == 99) {
groups[i] = newGroup;
break;
}
}
}
解决方案
#error
是一个预处理器指令。该错误将始终被处理,除非它被#if
或类似的预处理器指令删除。
预处理发生在编译之前。运行时条件不会影响它。
推荐阅读
- java - findPreference() 返回 null
- javascript - 将json数据导入动态创建的html表
- angular - 错误类型错误:Object(...)(...).database 不是函数@AngularFireDatabase
- python - 有人可以帮我修复 Python 文本冒险 RPG 游戏的代码吗?
- javascript - 使用 Webpanel 的 Discord 机器人?
- sql - 创建基于特定值重置的附加排名
- java - 如何在 dius.pact 中实现“or()”方法
- html - 如何在 Google 自定义搜索的 URL 中应用过滤和排序结果?
- javascript - 如何解决 Zoomooz.js 与 JQueryUI 自动完成的冲突?
- azure-web-app-service - 用于获取 Azure WebApp 详细信息的 Powershell 脚本