在 C 中的 header 中定义类型别名的外部变量
Define extern variable of type alias in header in C
我有一个包含以下两个声明的 C 文件
struct mmap_table_entry_t {
uint32_t size;
uint64_t base_addr;
uint64_t length;
uint8_t type;
}* mmap_table_entry;
typedef struct mmap_table_entry_t* table_entries;
我想在 header 文件中创建类型 table_entries
extern。如果不声明以上两种类型,我该怎么做?
I want to make the variable table_entries extern in a header file
如果你想在不定义结构的情况下声明你的外部变量,只需这样做:
extern struct mmap_table_entry_t * table_entries;
如果您想定义指向您的结构的类型指针,您的表单 typedef struct mmap_table_entry_t* table_entries;
是有效的。
类型不能是extern。 typedef 定义了一个类型,它不能 'force' 具有该类型的变量是 extern。变量的类型和它的存储是两个不同的东西,它们之间没有 link。
BWT 将指针隐藏在指针后面并不是一个好主意。
typedef struct mmap_table_entry_t* table_entries;
table_entries 不是仅变量类型名称。不能是外部的。
extern table_entries table_entries_var;
我有一个包含以下两个声明的 C 文件
struct mmap_table_entry_t {
uint32_t size;
uint64_t base_addr;
uint64_t length;
uint8_t type;
}* mmap_table_entry;
typedef struct mmap_table_entry_t* table_entries;
我想在 header 文件中创建类型 table_entries
extern。如果不声明以上两种类型,我该怎么做?
I want to make the variable table_entries extern in a header file
如果你想在不定义结构的情况下声明你的外部变量,只需这样做:
extern struct mmap_table_entry_t * table_entries;
如果您想定义指向您的结构的类型指针,您的表单 typedef struct mmap_table_entry_t* table_entries;
是有效的。
类型不能是extern。 typedef 定义了一个类型,它不能 'force' 具有该类型的变量是 extern。变量的类型和它的存储是两个不同的东西,它们之间没有 link。
BWT 将指针隐藏在指针后面并不是一个好主意。
typedef struct mmap_table_entry_t* table_entries;
table_entries 不是仅变量类型名称。不能是外部的。
extern table_entries table_entries_var;