MDK 调试模式下为什么看不到结构体变量和数组变量里的值?

哪位大神能帮我解决一下,在locals和Watch1窗口里能看到整形变量的值,但是结构体变量里都是0,怎么办?... 哪位大神能帮我解决一下,在locals和Watch1窗口里能看到整形变量的值,但是结构体变量里都是0,怎么办? 展开
 我来答
山水阿锐
2015-05-08 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
您好,这样的:
位结构是C51语言中的一种特殊结构,可以用于访问一个字节或字的多个位。位结构一般形式如下。
struct 位结构名
{
数据类型 变量名: 整形常数;
数据类型 变量名: 整形常数;
}位结构变量;
其中,struct为关键字,位结构数据类型必须是整型int(unsigned或signed);整形常熟必须是非负的整数,范围是0~15,用于表示有多少位,即表示二进制位的个数,变量名是可选项,可以省略。位结构的定义,实例如下。

struct
{
unsigned LBit : 8; //LBit 占用低字节0~7共八位。
unsigned HBit0 : 4; //HBit0 占用高字节0~3共4位。
unsigned HBit1 : 3; //HBit1 占用高字节4~6共3位。
unsigned HBit2 : 1; //HBit2 占用高字节第7位。
}Bit;
位结构成员的访问与结构成员的访问相同,例如访问上列位结构中的LBit成员可写成如下形式
Bit.LBit
在使用位结构时,应注意以下几点。
1、位结构中的成员必须是int,但可以定义为unsigned或者signed。
2、当位结构成员长度为1时,C51语言将其认为是unsigned类型。
3、位结构总长度(位数)是各个位成员定义的位数之和,可以超过两个字节。
4、位结构中的成员不能使用数组和指针,但位结构变量可以是数组和指针。如果是指针,其成员访问方式同结构指针。
5、位结构可以成为嵌套式结构的成员,与其他结构成员一起使用,示例如下。
struct student
{
char *name;
int num;
int age;
char *sex;
float score;
unsigned reister:1;
unsigned pay:1;
};
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式