JAVAプログラマがMTKプログラムを開発するには、注意が必要です。
4559 ワード
最近Cを使ってMTKプラットフォームのゲームを開発することを始めて多くの問題を発見します。
あるいは、組み込み式Cの要求です。JAVAプログラマーとしては、これらの注意点は本当にプログラム開発の邪魔になります。
1.変数の宣言は近くに置かなければなりません。
たとえば
これは組み込みコンパイラの要求です。変更できません。
でも、VC 6はヒントがあります。
2.多くの標準C関数は使えません。例えば、
ランド()
SDKで提供する方法 mrcurand();
このVC 6はエラーを提示しません。
もちろんメソッドにパラメータIDEを追加してもヒントはありません。
これはVC 6の不給力かもしれません。あるいはパラメータがvoidです。
つまり、開発者が生産力を大幅に削減することをタイムリーに提示することはできません。
3.グローバル変数に初期化の割り当てはできません。
たとえば
グローバル座標配列があります。
グローバル変数は0に初期化され、
それを一つの方法に置いて値を付けると、とても直感的ではないです。
たとえば
4.画像ファイルを読み込む際、画像の幅の高さを取得できません。
5.sizeof()メソッドで得られた長さは実際の占有バイト数と一致しない。
6.配列は長さを取得できません。
これはJavaプログラマの悩みかもしれません。
しかしCはCの規定があって、ただ不快なだけを使っています。
7.CとJavaの違いは言わない!
以上は斯凱の発泡SDKによるもので、
大変困惑しました。JavaプログラマーがCプログラムを書いているかもしれません。
それなら、あなたが使えるかもしれません。
あるいは、組み込み式Cの要求です。JAVAプログラマーとしては、これらの注意点は本当にプログラム開発の邪魔になります。
1.変数の宣言は近くに置かなければなりません。
たとえば
- view plaincopy to clipboardprint?
- void setFightState( int _fightState )
- {
- int i=0;
- fightState = _fightState;
- }
メソッド内の2行のコードは位置を変えることができません。変数宣言は近くしなければならないからです。これは組み込みコンパイラの要求です。変更できません。
でも、VC 6はヒントがあります。
2.多くの標準C関数は使えません。例えば、
ランド()
SDKで提供する方法 mrcurand();
このVC 6はエラーを提示しません。
もちろんメソッドにパラメータIDEを追加してもヒントはありません。
これはVC 6の不給力かもしれません。あるいはパラメータがvoidです。
つまり、開発者が生産力を大幅に削減することをタイムリーに提示することはできません。
3.グローバル変数に初期化の割り当てはできません。
たとえば
グローバル座標配列があります。
- view plaincopy to clipboardprint?
- int posX[] = { 70, 64, 26, 32, 176, 170, 208, 214 };
この定義は真のマシンで真実のデータを得ることができません。グローバル変数は0に初期化され、
それを一つの方法に置いて値を付けると、とても直感的ではないです。
たとえば
- void init_arena_data()
- {
- 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.画像ファイルを読み込む際、画像の幅の高さを取得できません。
5.sizeof()メソッドで得られた長さは実際の占有バイト数と一致しない。
- typedef struct
- {
- int8 moduleID; // ID
- int8 x; //
- int8 y;
- }ModuleApp;//
- typedef struct
- {
- int8 moduleAppCount; //
- ModuleApp *moduleApp; //
- }Frame;//
sizeofを使えば、得られた結果は8です。これはコンピュータがメモリを管理する時、揃える必要があるからです。人が想像する5、4、7などではありません。6.配列は長さを取得できません。
これはJavaプログラマの悩みかもしれません。
しかしCはCの規定があって、ただ不快なだけを使っています。
7.CとJavaの違いは言わない!
以上は斯凱の発泡SDKによるもので、
大変困惑しました。JavaプログラマーがCプログラムを書いているかもしれません。
それなら、あなたが使えるかもしれません。