代码之家  ›  专栏  ›  技术社区  ›  Sahil Yerawar

结构声明C++语句中的if语句

  •  1
  • Sahil Yerawar  · 技术社区  · 5 年前

    为了简单起见,我创建了一个示例代码来解释我的意图

    int var = 10
    
    struct example{
        int a;
        int b;
        if(var > 8){
            int c;
        }
    };
    

    我的问题是

    • if语句可以放在结构声明中吗?
    • 如果不是,有什么可能的补救办法,因为如果声明是强制性的。

    注意:我不能使用#if、#else指令或std::optional或其他标准库来缓解此问题,因此请帮助我找到其他解决方案。

    1 回复  |  直到 5 年前
        1
  •  2
  •   ninja    5 年前

    不,不能在结构或类定义中使用if语句。相反,对于条件声明,可以使用#if指令。

    #define var 10
    struct example {
        int a;
        int b;
        #if var > 8
            int c;
        #endif
    }
    

    这会有用的。

    “#if”是编译器指令(预处理器指令)。另一方面,if语句是运行时语句。

    除此之外别无选择!

        2
  •  0
  •   ΦXocę 웃 Пepeúpa ツ    5 年前
    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语句。