代码之家  ›  专栏  ›  技术社区  ›  ckv

定义结构内的常量

  •  2
  • ckv  · 技术社区  · 14 年前

    在如图所示的结构中定义常量数据是否有特殊意义?这是第三方图书馆的。

    typedef struct              
    {           
        IntVB abc_number;           
        #define ABC_A   0x01    
        #define ADBC_E  0x02     
        IntVB asset;            
    } StructA;
    
    3 回复  |  直到 14 年前
        1
  •  6
  •   Luca Matteis    14 年前

    不是真的。它们可能在代码的那个位置为程序员提供更好的意义。

    这意味着这些常量可能与该结构容器中的项或该结构的行为相关。

        2
  •  2
  •   cape1232    14 年前

    同意@luca matteis。它们可能是在那里定义的,因为它们在代码中的这一点上是相关的。编译器不会专门处理它们。特别是,它们可以在结构之前定义,并且工作原理相同。他们在里面没有意义。

    但是,有一点需要注意,它们只是有效的 之后 它们是被定义的。所以不能在文件中使用它们。这可能很重要。例如,在这一点之前可以对它们进行不同的定义。(这样做是个坏主意,但还是有可能的。)

        3
  •  1
  •   onof    14 年前

    不,可以在没有任何作用域的情况下调用它们