无法在C中使用void变量进行编译

test.c的

int main () {
   void a;
   return 0;
}

我使用gcc编译,但它给了我一个错误:

error: variable or field ‘a’ declared void

从我读到的here,
我以为我可以毫无问题地声明void变量.

如您的链接所述:

A variable that is itself declared void (such as my_variable above) is useless; it cannot be assigned a value, cannot be cast to another type, in fact, cannot be used in any way.

这意味着虽然语法正确,但void声明对任何东西都没用,这就是GCC认为它是错误的原因.即使它会编译,你也无法对变量做任何事情,所以我猜你的问题只与测试这种行为有关.

事实上,当我们讨论指针(void *)时,void很有用,因为它允许你声明一个通用指针而不指定类型.

相关文章
相关标签/搜索