天天看點

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的差别就不說了!