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)就不报。这一点还没深究,不一定正确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值