2.6.22版本的linux内核中,usb_bus_type的定义: 成员变量之前为什么加了一个点?
structbus_typeusb_bus_type={.name="usb",.match=usb_device_match,.uevent=usb_uevent,.s...
struct bus_type usb_bus_type = {
.name = "usb",
.match = usb_device_match,
.uevent = usb_uevent,
.suspend = usb_suspend,
.resume = usb_resume,
};
请人解释下这个结构体定义啊!常规的结构体定义没有这样定义的啊,不理解····
我自己用这种方法定义了一个结构体和结构体变量。(在vc++6.0编辑器中),可总是报错啊。不懂啊,有人知道是为什么吗? 展开
.name = "usb",
.match = usb_device_match,
.uevent = usb_uevent,
.suspend = usb_suspend,
.resume = usb_resume,
};
请人解释下这个结构体定义啊!常规的结构体定义没有这样定义的啊,不理解····
我自己用这种方法定义了一个结构体和结构体变量。(在vc++6.0编辑器中),可总是报错啊。不懂啊,有人知道是为什么吗? 展开
1个回答
展开全部
bus_type 原型为:
我下边是2.6.15内核的,. 表示原型结构体中定义的是指针变量;
struct bus_type {
const char * name;
struct subsystem subsys;
struct kset drivers;
struct kset devices;
struct klist klist_devices;
struct klist klist_drivers;
struct bus_attribute * bus_attrs;
struct device_attribute * dev_attrs;
struct driver_attribute * drv_attrs;
int (*match)(struct device * dev, struct device_driver * drv);
int (*hotplug) (struct device *dev, char **envp,
int num_envp, char *buffer, int buffer_size);
int (*suspend)(struct device * dev, pm_message_t state);
int (*resume)(struct device * dev);
};
我下边是2.6.15内核的,. 表示原型结构体中定义的是指针变量;
struct bus_type {
const char * name;
struct subsystem subsys;
struct kset drivers;
struct kset devices;
struct klist klist_devices;
struct klist klist_drivers;
struct bus_attribute * bus_attrs;
struct device_attribute * dev_attrs;
struct driver_attribute * drv_attrs;
int (*match)(struct device * dev, struct device_driver * drv);
int (*hotplug) (struct device *dev, char **envp,
int num_envp, char *buffer, int buffer_size);
int (*suspend)(struct device * dev, pm_message_t state);
int (*resume)(struct device * dev);
};
追问
usb_bus_type 是bus_type类型的一个变量吗?如果是,哪赋值是怎么回事?
如果不是,那usb_bus_type是定义另一个结构体?为什么是这么定义的啊?
追答
定义变量和赋值,没赋值的为默认值。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询