如何在定义的时候指定结构体中成员变量的值?

Vanyg 2002-07-24 09:11:30
在一个结构体中,有一个成员变量必须始终为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;
}
这些方法我都试过了,但都通不过。不知道到底可不可以在定义的时候指定结构体成员的值。


...全文
156 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Vanyg 2002-07-24
  • 打赏
  • 举报
回复
我试过了,确实多一个构造函数不会增加长度,而且好像增加普通的成员函数也不会增加长度。这是为什么那?
Vanyg 2002-07-24
  • 打赏
  • 举报
回复
我试了,确实不会增加,呵呵,为什么那?
realfly 2002-07-24
  • 打赏
  • 举报
回复
多一个构造函数,长度不会变化,所以应该用构造函数,价格实惠量又足8)
参见《c++对象模型》——华中
struct a
{
int b;
unsinged char ch;
float c;

a(){
memset(this, 0, sizeof(this) );
}
};
realfly 2002-07-24
  • 打赏
  • 举报
回复
多一个构造函数,长度不会变化,所以应该用构造函数,价格实惠量又足8)
参见《c++对象模型》——华中
TyraelTiger 2002-07-24
  • 打赏
  • 举报
回复
楼上的说的是正确的.这实际上和类的静态成员常量的道理是一样的.
Sustain 2002-07-24
  • 打赏
  • 举报
回复
如果你想设定为常量,还可以这样:
struct a
{
int b;
const static unsinged char ch;
float c;
};

const unsinged char a::ch = 0;



Sustain 2002-07-24
  • 打赏
  • 举报
回复
改正:
struct a
{
int b;
static unsinged char ch;
float c;
};

unsinged char a::ch = 0;
Sustain 2002-07-24
  • 打赏
  • 举报
回复

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

char a::ch = 0;
Vanyg 2002-07-24
  • 打赏
  • 举报
回复
有没有其它办法?因为此结构体的长度是定了的,如果多一个构造函数,长度会有变化吧。
Vanyg 2002-07-24
  • 打赏
  • 举报
回复
有没有其它办法?因为此结构体的长度是定了的,如果多一个构造函数,长度会有变化吧。
alphapiao 2002-07-24
  • 打赏
  • 举报
回复
把你结构体声明成全局变量,在你程序开始的时候把其中一个变量初始化为0,只要你在后面的程序不对它进行重新赋值,就不会变啦 。
TopLevel 2002-07-24
  • 打赏
  • 举报
回复
构造一个初始化函数既可。
struct a
{
int b;
static const char c=0;
float d;
a()
{
.....
static const char c = 0;
.....
}
}
realfly 2002-07-24
  • 打赏
  • 举报
回复
强烈推荐——《c++对象模型》
realfly 2002-07-24
  • 打赏
  • 举报
回复
如果没有书的话,
简单的说:
虚函数、虚基类才会对长度影响

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧