当前位置: 技术问答>linux和unix
一个C++结构体的问题= =
来源: 互联网 发布时间:2017-05-28
本文导语: 刚开始看内核的MD模块,一上来就懵了: static const struct block_device_operations md_fops = { .owner = THIS_MODULE, .open = md_open, .release = md_release, .ioctl = md_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl = md_compat_ioctl, #endif .getgeo = m...
刚开始看内核的MD模块,一上来就懵了:
如上面这段代码所示
又比如下面这个
这里有几个问题:
1、static struct XXXX ={
.var1 = XXX,
.var2 = XXX
};
这样的声明是什么意思?以前还真没遇到过。
2、第二段代码中出现了这样的语句:
var = {1,2,0};
这又是啥意思?
static const struct block_device_operations md_fops =
{
.owner = THIS_MODULE,
.open = md_open,
.release = md_release,
.ioctl = md_ioctl,
#ifdef CONFIG_COMPAT
.compat_ioctl = md_compat_ioctl,
#endif
.getgeo = md_getgeo,
.media_changed = md_media_changed,
.revalidate_disk= md_revalidate,
};
如上面这段代码所示
又比如下面这个
static struct dm_cache_policy_type default_policy_type = {
.name = "default",
.version = {1, 2, 0},
.hint_size = 4,
.owner = THIS_MODULE,
.create = mq_create,
.real = &mq_policy_type
};
这里有几个问题:
1、static struct XXXX ={
.var1 = XXX,
.var2 = XXX
};
这样的声明是什么意思?以前还真没遇到过。
2、第二段代码中出现了这样的语句:
var = {1,2,0};
这又是啥意思?
|
|
这个相当于:
static struct XXXX x;
x.var1 = XXX;
x.var2 = XXX;
|
这个var应该是个结构体,他包含三个成员变量,这句话把他们三个分别初始化。
|
这是结构的指定初始化项目,用点和成员名来表示具体元素
|
这些是C99标准里面的语法
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。