结构声明 C++ 中的 If 语句
If statement inside Struct Declaration C++
我对 C++ 中的结构和 if 语句有疑问
为了简单起见,我创建了一个示例代码来解释我的意图
int var = 10
struct example{
int a;
int b;
if(var > 8){
int c;
}
};
我有一个代码库,它使用与上面类似的代码。注释掉 if 部分不会给出任何错误。
我的问题是
- 是否可以将 if 语句放在结构声明中?
- 如果不是,可能的补救措施是什么,因为 if 语句是强制性的。
注意:我无法使用#if、#else 指令或std::optional 或其他标准库来缓解这种情况,所以请帮我找到另一个解决方案。
不,您不能在结构或 class 定义中使用 if 语句。相反,对于条件声明,您可以使用#if 指令。
#define var 10
struct example {
int a;
int b;
#if var > 8
int c;
#endif
}
这会起作用。
'#if'是一个编译指令(预处理器指令)。另一方面,if 语句是运行时语句。
除此之外别无他法!
int main()
{
int var = 10;
if(var>10){
struct example{
int a;
int b;
int c;
};
}else {
struct example{
int a;
int b;
};
}
cout<<"Hello World";
return 0;
}
有多种方法可以解决您的问题,其中显示了一种实现方法。
我们不能在结构中添加 if 语句。
我对 C++ 中的结构和 if 语句有疑问
为了简单起见,我创建了一个示例代码来解释我的意图
int var = 10
struct example{
int a;
int b;
if(var > 8){
int c;
}
};
我有一个代码库,它使用与上面类似的代码。注释掉 if 部分不会给出任何错误。 我的问题是
- 是否可以将 if 语句放在结构声明中?
- 如果不是,可能的补救措施是什么,因为 if 语句是强制性的。
注意:我无法使用#if、#else 指令或std::optional 或其他标准库来缓解这种情况,所以请帮我找到另一个解决方案。
不,您不能在结构或 class 定义中使用 if 语句。相反,对于条件声明,您可以使用#if 指令。
#define var 10
struct example {
int a;
int b;
#if var > 8
int c;
#endif
}
这会起作用。
'#if'是一个编译指令(预处理器指令)。另一方面,if 语句是运行时语句。
除此之外别无他法!
int main()
{
int var = 10;
if(var>10){
struct example{
int a;
int b;
int c;
};
}else {
struct example{
int a;
int b;
};
}
cout<<"Hello World";
return 0;
}
有多种方法可以解决您的问题,其中显示了一种实现方法。
我们不能在结构中添加 if 语句。