有时我们遇到“struct xxxx;”在C文件中,以libusb.h为例,这是libusb.so的头文件,如下所示(struct libusb_device
):
struct libusb_context;
struct libusb_device;
struct libusb_device_handle;
这是什么意思?这只是宣言吗?但我找不到struct libusb_device
的定义。
整个libusb.h文件位于:libusb.h。
答案 0 :(得分:1)
这是一个声明(在C ++中)或一个不完整的类型声明(在C中):
struct libusb_context;
这是一个定义(在C ++中)或[完整类型]声明(在C中):
struct libusb_context {
int my_device_id;
};
了解这些术语,您可以找到许多差异的解释。例如,请查看此处:What is the difference between a definition and a declaration?