我没见过C++语法求教

zwjchina 2011-11-10 08:30:40


class CTest
{
public:
bool IsWrong:1;
}



这个 bool IsWrong:1;中的:1是什么?
...全文
293 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
何阿非 2011-11-11
  • 打赏
  • 举报
回复
“位域”,在嵌入式编程用的多些。
这里有篇文章写得好,你看看吧。
http://yangwei.blogbus.com/logs/1550489.html
满月的愿望 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 xiakan008 的回复:]
引用 6 楼 supermegaboy 的回复:

引用 3 楼 zwjchina 的回复:
C/C++ code

class CTest
{
public:
bool IsWrong:1;
unsigned __int8 V2:3;
}



那这个怎么解释呢。unsigned __int8 V2:3;


__int8是一个自定义的类型,从字面意义上看,应该……
[/Quote]

++
zzcmx2008 2011-11-11
  • 打赏
  • 举报
回复
bool IsWrong:1; //代表IsWrong占一位
unsigned __int8 V2:3 //__int8应该是宏定义,代表是一个有符号8位int,故V2代表一个无符号__int8类型的位域,宽度为3位。
BT六眼飞鱼 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 supermegaboy 的回复:]

引用 3 楼 zwjchina 的回复:
C/C++ code

class CTest
{
public:
bool IsWrong:1;
unsigned __int8 V2:3;
}



那这个怎么解释呢。unsigned __int8 V2:3;


__int8是一个自定义的类型,从字面意义上看,应该是一个有符号8位int,unsigned __int8……
[/Quote]
正解~
一叶之舟 2011-11-11
  • 打赏
  • 举报
回复
就是位域的概概念,指这个变量只占一个bit.
pengzhixi 2011-11-11
  • 打赏
  • 举报
回复
额,如果书上没有那么就google"位域",还本好点的c语言教材吧
Xomic 2011-11-11
  • 打赏
  • 举报
回复
是位域吧!当初我也遇见过下例...
struct AAA
{
int a:6;
char b:3;
};

int 本来占有 2Byte = 16bit,现在只给他6 bit 。超过6bit的整数 以后的位会被舍弃!
rach09 2011-11-11
  • 打赏
  • 举报
回复
按位运算的
qscool1987 2011-11-11
  • 打赏
  • 举报
回复
xue xi le
pathuang68 2011-11-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 whoami1978 的回复:]

一般较高层次的C++语言书上都有介绍的,位运算
[/Quote]

非也,一般入门级的C语言的书都说了位域
寻找自我 2011-11-10
  • 打赏
  • 举报
回复
c++ primer
我好像错了,是一位。
[Quote=引用 7 楼 zwjchina 的回复:]

了解了。多谢。多问一句,我在书上基本没看到这样内容。这些内容哪里有?
[/Quote]
whoami1978 2011-11-10
  • 打赏
  • 举报
回复
一般较高层次的C++语言书上都有介绍的,位运算
zwjchina 2011-11-10
  • 打赏
  • 举报
回复
了解了。多谢。多问一句,我在书上基本没看到这样内容。这些内容哪里有?
飞天御剑流 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zwjchina 的回复:]
C/C++ code

class CTest
{
public:
bool IsWrong:1;
unsigned __int8 V2:3;
}



那这个怎么解释呢。unsigned __int8 V2:3;
[/Quote]

__int8是一个自定义的类型,从字面意义上看,应该是一个有符号8位int,unsigned __int8 V2:3就是一个无符号__int8类型的位域,宽度为3位。
霸气傲中原 2011-11-10
  • 打赏
  • 举报
回复
根据楼上二位 到底是一个字节还是一位呢?求教!
zwjchina 2011-11-10
  • 打赏
  • 举报
回复

class CTest
{
public:
bool IsWrong:1;
unsigned __int8 V2:3;
}


那这个怎么解释呢。unsigned __int8 V2:3;
飞天御剑流 2011-11-10
  • 打赏
  • 举报
回复
IsWrong是一个位域bitfield,二进制宽度为1位,类型为bool。
寻找自我 2011-11-10
  • 打赏
  • 举报
回复
分配1个字节

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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