天天看点

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

最近开始使用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,    176, 170, 208, 214 };   

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

全局变量被初始化成了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的差别就不说了!