在一个结构体中,有一个成员变量必须始终为0,有没有办法在定义这个结构体的时候就强行指定这个变量的值?比如
struct a
{
  int b;
  (unsinged char)0;
  float c;
};
或者
struct a
{
  int b;
  (unsigned char)c=0;
  float d;
}
或者
struct a
{
  int b;
  static const char c=0;
  float d;
}
这些方法我都试过了,但都通不过。不知道到底可不可以在定义的时候指定结构体成员的值。  

解决方案 »

  1.   

    构造一个初始化函数既可。
    struct a
    {
      int b;
      static const char c=0;
      float d;
      a()
      {
        .....
        static const char c = 0;
        .....
      }
    }
      

  2.   


    这样!
    struct a
    {
      int b;
      static unsinged char ch;
      float c;
    };char a::ch = 0;
      

  3.   

    改正:
    struct a
    {
      int b;
      static unsinged char ch;
      float c;
    };unsinged  char a::ch = 0;
      

  4.   

    如果你想设定为常量,还可以这样:
    struct a
    {
      int b;
      const static unsinged char ch;
      float c;
    };const unsinged char a::ch = 0;
      

  5.   

    多一个构造函数,长度不会变化,所以应该用构造函数,价格实惠量又足8)
    参见《c++对象模型》——华中
    struct a
    {
      int b;
      unsinged char ch;
      float c; a(){
        memset(this, 0, sizeof(this) );
     }
    };