C++改写成C中若干问题处理(eg.error C2275)

最近把我之前写的2048游戏从.cpp改成.c,编译器报了若干个错,在处理过程中进一步了解了C++和C的区别,总结如下:

1.报错error C2275 将此类型用作表达式非法:这个提示信息非常无厘头,其实原因就是C里面变量声明必须在函数的头部,全部声明完了才能开始干活,把出错的变量声明挪到前面就好了。如果是位于switch的case里面,把case里面的东西用{}包起来,在{刚开始的部分声明就好了。

同样的,在C里面,for定义部分带变量声明也不允许:

for(int i=0;i<N;i++)//error

2.C里面没有bool类型,只有BOOL类型,BOOL类型实质上是typedef int BOOL。同样的C也没有true和false,只有TRUE和FALSE,也是两个宏。

3.C中的常量不能复用。例如

const int x=1;
const int y=x;//error

要么写成y=1,要么改成宏。

4.强制类型转换写成int(x/y)就报错,而写成(int)(x/y)就不报。这一点还没深究,不一定正确。

猜你喜欢

转载自blog.csdn.net/tomwillow/article/details/52605423
今日推荐