转发声明未命名结构的typedef

sas*_*alm 7 c++ forward-declaration

可能重复:
未命名结构的前向声明

如果我有

typedef struct tagPAGERANGE
{
    int iFirstPage;
    int iLastPage;
} PAGERANGE;
Run Code Online (Sandbox Code Playgroud)

我可以这样宣布它

struct tagPAGERANGE;
typedef struct tagPAGERANGE PAGERANGE;
Run Code Online (Sandbox Code Playgroud)

但我拥有的是

typedef struct
{
    int iFirstPage;
    int iLastPage;
} PAGERANGE;
Run Code Online (Sandbox Code Playgroud)

我不知道怎么做.我只想拥有一个指向这个结构的指针.现在我坚持要么包含一个相当实质的标题,要么重复结构的定义.

Cat*_*lus 12

不可能.您只能声明命名的结构.

想想识别没有名称的结构的内容,以及如何告诉编译器它是你想要的那个结构.如果它没有名称,则由其成员标识,因此您需要提供成员 - 即定义它.因此,您不能仅仅声明它 - 除了定义本身之外,您没有标识符的奢侈品.