看程序:

int main()
{
	void a;
	return 0;
}
      编译错误。


int main()
{
	void *a;
	return 0;
}
     编译运行正确。为什么呢? 因为C/C++不能定义通用类型的一般变量(长度不确定), 但是可以定义通用类型的指针(指针长度确定)。


     

     然而, 上述程序有编译告警, 怎么消除呢?

int main()
{
	void *a;
	(void *)a;
	return 0;
}
      这种用法在实际开发中也会经常用到(主要是规避编译器警告)。当然, 下面这样也可以, 不过不太好:

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





本文转载:CSDN博客