关于gcc的警告:warning: useless keyword or type name in empty declaration

 如果你在c文件里面定义:


static struct my_struct

{

。。。

};


则会报这个警告,去除该警告有2种方法:


(1)把static去掉:

 struct my_struct

{

。。。

};

定义变量时加上static,例如static struct my_struct my_val;


(2)在定义时加上变量:

static struct my_struct

{

。。。

}my_val;


显然,这是修饰符的问题。用上static后,它修饰的是变量,但struct xxx{};只是一个类型而已。所以说类型是不需要static的,这就是方法一的实现。另外如果struct定义后面加上变量以后,那么这个static就是修饰的这个变量,警告也就没了,这也是方法二的实现。

 

 

 

 

你可能感兴趣的:(c,struct,gcc)