看程序:
- 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;
- }