JAVA程序员开发MTK程序,需要注意的点!

本文总结了使用C语言开发MTK平台游戏时遇到的问题:变量声明位置限制、标准C函数替代、全局变量初始化、图片宽高获取困难、sizeof运算符的行为、数组长度获取等问题,并提出了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开始使用C开发MTK平台游戏发现很多问题!

或者说是 嵌入式C的要求,作为一个JAVA程序员来说,这些注意点真是相对有碍程序开发!

1.变量的声明必须放在靠近{的地方

比如


  1. view plaincopy to clipboardprint?  
  2. void setFightState( int _fightState )     
  3. {     
  4.     int i=0;     
  5.     fightState = _fightState;     
  6. }   

方法体内的2行代码不可以调换位置,因为 变量声明必须靠近{

这是嵌入式编译器的要求,没办法更改!

但VC6会有提示!

2.好多标准C函数不可以用,比如

rand();

要用SDK提供的方法 mrc_rand();

这个VC6不会提示错误!

当然 如果给方法增加了 参数 IDE也不会提示!

这也许是VC6的 不给力!或者是 参数为void的缘故

总之 不能及时提示开发者将大大削减生产力呀!

3.不能给全局变量初始化赋值

比如

我有一个全局 坐标数组


  1. view plaincopy to clipboardprint?  
  2. int posX[] = {  70,  64,  26,  32,    176170208214 };   

这个定义无法在真机上获得到真实数据,

全局变量被初始化成了0,

如果将其放到一个方法里赋值,那会很不直观

比如


  1. void init_arena_data()     
  2. {     
  3.     posX[0]=70;  posX[1]=64;  posX[2]=26;  posX[3]=32;   posX[4]=176; posX[5]=170; posX[6]=208; posX[7]=214;      
  4. }   

这些数据不能被初始化赋值,就很难使用 常量来描述 数组

4.在载入图片文件的时候,不能获取图片的宽高!

5.sizeof()方法获得的长度与实际占用字节数不符合


  1. typedef struct    
  2. {     
  3.     int8 moduleID;  //图元ID     
  4.     int8 x;         //图元偏移坐标     
  5.     int8 y;     
  6. }ModuleApp;//图元在帧中应用时的数据     
  7. typedef struct    
  8. {     
  9.     int8 moduleAppCount;    //图元数量     
  10.     ModuleApp *moduleApp;   //图元数组     
  11. }Frame;//帧数据   

如果用sizeof(Frame);得到的结果是8,这是因为计算机管理内存的时候需要对齐,所以不是人为想象的5,4,7之类的!

6.数组不能获取长度

这也许是Java程序员比较烦的事情了!

但C有C的规定,只是用着不爽而已!

7.C与Java的差别就不说了!

以上出自 斯凯的冒泡SDK,

给我很大困惑,也许你是Java程序员正在写C程序!

那么也许你能用上!


本文转自 kome2000 51CTO博客,原文链接:http://blog.51cto.com/kome2000/578751


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值