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行のコードは位置を変えることができません。変数宣言は近くしなければならないからです。
これは組み込みコンパイラの要求です。変更できません。
でも、VC 6はヒントがあります。
2.多くの標準C関数は使えません。例えば、
ランド()
SDKで提供する方法 mrcurand();
このVC 6はエラーを提示しません。
もちろんメソッドにパラメータIDEを追加してもヒントはありません。
これはVC 6の不給力かもしれません。あるいはパラメータが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を使えば、得られた結果は8です。これはコンピュータがメモリを管理する時、揃える必要があるからです。人が想像する5、4、7などではありません。
6.配列は長さを取得できません。
これはJavaプログラマの悩みかもしれません。
しかしCはCの規定があって、ただ不快なだけを使っています。
7.CとJavaの違いは言わない!
以上は斯凱の発泡SDKによるもので、
大変困惑しました。JavaプログラマーがCプログラムを書いているかもしれません。
それなら、あなたが使えるかもしれません。