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

在没有定义的头文件中声明数组大小

  •  1
  • dimba  · 技术社区  · 15 年前

    我有以下代码A(简化版):

    #define MESSAGE_SIZE_MAX 1024
    #defined MESSAGE_COUNT_MAX 20
    
    class MyClass {
    public:
       .. some stuff
    private:
       unsigned char m_messageStorage[MESSAGE_COUNT_MAX*MESSAGE_SIZE_MAX];
    };
    

    我不喜欢定义,它对mycalss的所有用户都可见。

    我怎么做C++风格呢?

    谢谢 迪马

    2 回复  |  直到 15 年前
        1
  •  5
  •   nik    15 年前

    把这些东西放进 class 定义是

    // public:
    enum {MESSAGE_SIZE_MAX=1024, MESSAGE_COUNT_MAX=20};
    

    我从不喜欢 #defines 像常量一样使用。
    使用它总是一个好习惯 enum .

        2
  •  6
  •   avakar    15 年前

    为什么不简单地用一个常数呢?

    const int message_size_max = 1024;
    

    注意,与C、C++不同的是,全局范围内的常量变量在默认情况下具有静态链接。

    上面的常量变量是一个常量表达式,因此可以用于指定数组大小。

    char message[message_size_max];