struct 是内核源代码中的声明或定义还是某种类型的面向对象的行为
struct is it declaration or defination or some type of Object Oriented behavior in kernel source
在 r8169_main.c 中 linux 内核源代码中有一个像这样的结构
#define KBUILD_MODNAME "foo"
static struct pci_driver rtl8169_pci_driver = {
.name = KBUILD_MODNAME,
.id_table = rtl8169_pci_tbl,
.probe = rtl_init_one,
.remove = rtl_remove_one,
.shutdown = rtl_shutdown,
.driver.pm = pm_ptr(&rtl8169_pm_ops),
};
我喜欢在第一个成员 .name 中使用,但没有指定数据类型,并且在 name
之前有 .
,例如 .name = KBUILD_MODNAME,
它叫什么。这个名称成员是否在其他地方定义了这个静态结构是什么意思我以前没有见过这种类型的结构。任何人都可以告诉这是什么,它甚至在结构声明中分配了一个值吗???
我也可以创建这种结构的数组吗?
what is it called.
name
是结构 struct pci_driver
.
的 成员
初始化形式称为指定初始化。 .name = something
部分是 代号 .
is this name member defined somewhere else
是的,在include/linux/pci.h。
what this static struct means I did not seen this type of struct before
行 定义了 类型 struct pci_driver
的变量 rtl8169_pci_driver
。 static
关键字修改 变量 生命周期 - 这意味着该变量在整个程序期间都有效。
static struct pci_driver rtl8169_pci_driver = {...}
^^^^^^^ - initialization
^^^^^^^^^^^^^^^^^ - variable name
^^^^^^^^^^^^^^^^ - variable type
^^^^^ - storage specifier
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - variable declaration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - variable definition
研究https://en.cppreference.com/w/c/language/declarations https://en.cppreference.com/w/c/language/struct_initialization https://en.cppreference.com/w/c/language/storage_duration
can I also create array of this type of struct?
您可以创建 struct pci_driver
个数组。
static struct pci_driver example_array[20] = {
{ .name = initilization_for_first_element, ... },
{ .name = initilization_for_second_element, ... },
... etc.
};
在 r8169_main.c 中 linux 内核源代码中有一个像这样的结构
#define KBUILD_MODNAME "foo"
static struct pci_driver rtl8169_pci_driver = {
.name = KBUILD_MODNAME,
.id_table = rtl8169_pci_tbl,
.probe = rtl_init_one,
.remove = rtl_remove_one,
.shutdown = rtl_shutdown,
.driver.pm = pm_ptr(&rtl8169_pm_ops),
};
我喜欢在第一个成员 .name 中使用,但没有指定数据类型,并且在 name
之前有 .
,例如 .name = KBUILD_MODNAME,
它叫什么。这个名称成员是否在其他地方定义了这个静态结构是什么意思我以前没有见过这种类型的结构。任何人都可以告诉这是什么,它甚至在结构声明中分配了一个值吗???
我也可以创建这种结构的数组吗?
what is it called.
name
是结构 struct pci_driver
.
初始化形式称为指定初始化。 .name = something
部分是 代号 .
is this name member defined somewhere else
是的,在include/linux/pci.h。
what this static struct means I did not seen this type of struct before
行 定义了 类型 struct pci_driver
的变量 rtl8169_pci_driver
。 static
关键字修改 变量 生命周期 - 这意味着该变量在整个程序期间都有效。
static struct pci_driver rtl8169_pci_driver = {...}
^^^^^^^ - initialization
^^^^^^^^^^^^^^^^^ - variable name
^^^^^^^^^^^^^^^^ - variable type
^^^^^ - storage specifier
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - variable declaration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - variable definition
研究https://en.cppreference.com/w/c/language/declarations https://en.cppreference.com/w/c/language/struct_initialization https://en.cppreference.com/w/c/language/storage_duration
can I also create array of this type of struct?
您可以创建 struct pci_driver
个数组。
static struct pci_driver example_array[20] = {
{ .name = initilization_for_first_element, ... },
{ .name = initilization_for_second_element, ... },
... etc.
};