C语言中的 :1; 是什么意思?

例如,单片机C语言编程时用到的typedefunion{byteByte;struct{bytePTBD0:1;/*PortBDataRegisterBit0*/byte... 例如,单片机C语言编程时用到的
typedef union {
byte Byte;
struct {
byte PTBD0 :1; /* Port B Data Register Bit 0 */
byte PTBD1 :1; /* Port B Data Register Bit 1 */
byte PTBD2 :1; /* Port B Data Register Bit 2 */
byte PTBD3 :1; /* Port B Data Register Bit 3 */
byte PTBD4 :1; /* Port B Data Register Bit 4 */
byte PTBD5 :1; /* Port B Data Register Bit 5 */
byte PTBD6 :1; /* Port B Data Register Bit 6 */
byte PTBD7 :1; /* Port B Data Register Bit 7 */
} Bits;
} PTBDSTR;
展开
 我来答
踏辉C
2013-09-15 · TA获得超过6254个赞
知道小有建树答主
回答量:103
采纳率:0%
帮助的人:78.5万
展开全部
->是一个整体,它是用于指向结构体、C++中的class等含有子数据的指针用来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到“->”.
举个例子:
struct Data
{
int a,b,c;
}; /*定义结构体*/
struct Data * p;/*定义结构体指针*/
struct Data A = {1,2,3};/*声明变量A*/
int x;/*声明一个变量x*/
p = &A ; /*让p指向A*/
x = p->a;/*这句话的意思就是取出p所指向的结构体中包含的数据项a赋值给x*/
/*由于此时p指向A,因而 p->a == A.a,也就是1*/

对于一开始的问题 p = p->next;这应该出现在C语言的链表,这里的next应该是一个与p同类型的结构体指针,其定义格式应该是:
struct Data
{
int a;
struct Data * next;
};/*定义结构体*/
…………
main()
{
struct Data * p;/*声明指针变量p*/
……
p = p->next;/*将next中的值赋给p*/
}
链表指针是C语言的一个难点,但也是重点,学懂了非常有用。要仔细讲就必须先讲变量、指针。
什么是变量?所谓变量,不要浅显的认为会变得量就是变量。套用我们院长的问话:“教室变不变?”变,因为每天有不同的人在里面上课,但又不变,因为教室始终在那,没有变大或变小。这就是变量:有一个不变的地址和一块可变的存储空间。正常情况下,我们只看到变量这个房间里面的东西,也就是其内容,但不会关注变量的地址,但是C语言的指针,就是这个房间的地址。我们声明变量就相当于盖了间房子存放东西,我们可以直接观看房子里的东西,而声明指针,就是相当于获得了一个定位器,当用指针指向某个变量时,就是用指针给变量定位,以后我们就可以用指针找到他所“跟踪”的变量并可以获得里面的内容。
那结构体呢?结构体就相当于是有好几个房子组成的别墅,几个房子绑定在一起使用。假设现在有很多这种别墅分布在一个大迷宫里,每间别墅里都有一间房子。里面放了另一个别墅的位置信息,现在你手拿定位器找到了第一栋别墅,从里面得到了你想要的东西(链表的数据部分),然后把下一栋别墅的位置计入你的定位器(p = p->next),再走向下一栋别墅……如此走下去,知道走到某地下一栋别墅信息没有了(p->next == NULL),你的旅行结束。这就是链表一次遍历的过程。现在你能明白 p=p->next的含义了吧!
写了这么多。希望你能明白。
如果想学好c和C++,链表和指针必须熟练掌握!
09211082
2013-09-14
知道答主
回答量:53
采纳率:0%
帮助的人:27.5万
展开全部
位域,将一个字节的8位分别命名为PTBD0 ,PTBD1,PTBD2……PTBD8
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2022-04-20
展开全部
这个类似结构体,位域或者位段。把一个字节分成几个位来操作。:1;指在一个字节中,占1位。C语言教材中,位操作章节有讲解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
职业搞笑玩家
2022-06-09
知道答主
回答量:13
采纳率:0%
帮助的人:4.7万
展开全部
把PTBD强制限制成1字节的内存
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一变班爱麻啊堡0J
高粉答主

2020-01-13 · 醉心答题,欢迎关注
知道答主
回答量:11.4万
采纳率:2%
帮助的人:5625万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式