在 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; 是有效的。

类型不能是externtypedef 定义了一个类型,它不能 'force' 具有该类型的变量是 extern。变量的类型和它的存储是两个不同的东西,它们之间没有 link。

BWT 将指针隐藏在指针后面并不是一个好主意。

typedef struct mmap_table_entry_t* table_entries;

table_entries 不是仅变量类型名称。不能是外部的。

extern table_entries table_entries_var;