请问这个结构中的冒号是什么作用??

kkk16 2002-04-03 11:38:45
linux源代码中有个结构的声明和定义如下:


结构的声明:
struct gendisk {
int major;
const char *major_name;
int minor_shift;
int max_p;

struct hd_struct *part;
int *sizes;
int nr_real;

void *real_devices;
struct gendisk *next;
struct block_device_operations *fops;

devfs_handle_t *de_arr;
char *flags;
};

另外的一个这个结构的变量定义:

static struct gendisk md_gendisk=
{
major: MD_MAJOR,
major_name: "md",
minor_shift: 0,
max_p: 1,
part: md_hd_struct,
sizes: md_size,
nr_real: MAX_MD_DEVS,
real_devices: NULL,
next: NULL,
fops: &md_fops,
};

请问上面的这个括号里面的冒号:起什么作用?
...全文
177 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
kkk16 2002-04-03
  • 打赏
  • 举报
回复
111222(www.mozilla.org)
看不懂,什么意思?
111222 2002-04-03
  • 打赏
  • 举报
回复
m_pWndSearchDBDlg
kkk16 2002-04-03
  • 打赏
  • 举报
回复
前面加上了static 而且cc也加上去了,还是错。
我不是大明 2002-04-03
  • 打赏
  • 举报
回复
在你的前面加上一个static 再把cc的也加上看看还会不会错!
招RD和QA 2002-04-03
  • 打赏
  • 举报
回复
gzer
jimmyxu 2002-04-03
  • 打赏
  • 举报
回复
It's just for static structure assignment. Maybe you
can see the following codes:

struct CELL // Declare CELL bit field
{
unsigned character : 8; // 00000000 ????????
unsigned foreground : 3; // 00000??? 00000000
unsigned intensity : 1; // 0000?000 00000000
unsigned background : 3; // 0???0000 00000000
unsigned blink : 1; // ?0000000 00000000
} screen[25][80]; // Array of bit fields
kkk16 2002-04-03
  • 打赏
  • 举报
回复
那么我下面的语句在VC里面怎么编译不能通过?

struct mystruct
{
int aa;
int bb;
int cc;
};

struct mystruct TheStruct =
{
aa:1,
bb:2,
};

我觉得这个跟以上说的情况一样,怎么在VC中编译出错呢?
jimmyxu 2002-04-03
  • 打赏
  • 举报
回复
Very good. In addition, please see

-- from MSDN
struct CELL // Declare CELL bit field
{
unsigned character : 8; // 00000000 ????????
unsigned foreground : 3; // 00000??? 00000000
unsigned intensity : 1; // 0000?000 00000000
unsigned background : 3; // 0???0000 00000000
unsigned blink : 1; // ?0000000 00000000
} screen[25][80]; // Array of bit fields

You see what?

OK.
wpmsoft 2002-04-03
  • 打赏
  • 举报
回复
再说一句,与下边的语句相同,只不过更清晰一些罢了!!
static struct gendisk md_gendisk=
{
MD_MAJOR,
"md",
0,
1,
md_hd_struct,
md_size,
MAX_MD_DEVS,
NULL,
NULL,
&md_fops,
};
wpmsoft 2002-04-03
  • 打赏
  • 举报
回复
这是一个静态的结构,:是给该成员赋予初始值的。
水清无鱼 2002-04-03
  • 打赏
  • 举报
回复
在VC中有这样的用法
kingzai所说的是一种情况,我曾经做的一个自动化控制项目就是这样用的。

kkk16 2002-04-03
  • 打赏
  • 举报
回复
没人知道吗??
kkk16 2002-04-03
  • 打赏
  • 举报
回复
你没看错吧?位域符还有用字符标识的??
你看下面这句?
major_name: "md",

CSDN好象现在高手很少了!
哎!
kingzai 2002-04-03
  • 打赏
  • 举报
回复
冒号是位域符号,:后面的整数表示所占的位数,比如
unsigned character : 8; // 00000000 ????????
unsigned foreground : 3; // 00000??? 00000000
unsigned intensity : 1; // 0000?000 00000000
unsigned background : 3; // 0???0000 00000000
unsigned blink : 1; // ?0000000 00000000
character占8位,foreground占3位,。。。总共为16位
kkk16 2002-04-03
  • 打赏
  • 举报
回复
难道没人知道这个问题吗?

16,551

社区成员

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

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

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