警告:空声明中无用的类型名称

Ama*_*tam 2 c gcc warnings typedef extern

我有一个项目,项目中的两个文件命名为query-structures.h query-structures.c.在内容query-structures.hARE

#include <stdint.h>
typedef struct user_identifier user_identifier;
extern user_identifier;
Run Code Online (Sandbox Code Playgroud)

query-structures.c

#include "query-structures.h"
struct user_identifier
{
    uint64_t user_id;
};
Run Code Online (Sandbox Code Playgroud)

现在编译器正在给我一个警告

warning: useless type name in empty declaration [enabled by default]

我无法理解为什么会出现此警告,因为我必须struct在项目的其他文件中使用它.

TJD*_*TJD 10

此行异常,因为您声明了类型但没有变量名称

extern user_identifier;
Run Code Online (Sandbox Code Playgroud)

例如,使用整数,你会写

extern int x;
Run Code Online (Sandbox Code Playgroud)

  extern int;
Run Code Online (Sandbox Code Playgroud)