flagflag  
7: 2012-02-18 (Sat) 21:30:04 s10037 source Cur: 2012-09-16 (Sun) 16:12:45 s10037 source
Line 74: Line 74:
公式から落としてきたbulletのSDKを解凍すると、中にlibというフォルダがあるが中にライブラリファイルは入っていない。~ 公式から落としてきたbulletのSDKを解凍すると、中にlibというフォルダがあるが中にライブラリファイルは入っていない。~
bullet-2.xx → msvc → 2008 (自分の場合) → lib → Debug~ bullet-2.xx → msvc → 2008 (自分の場合) → lib → Debug~
 +となりにreleaseもあるんじゃね(たぶん)~
 +あんまりいじってないから知らん~
 +
を指定する~ を指定する~
~ ~
Line 80: Line 83:
**アラインメント [#nc3a80e9] **アラインメント [#nc3a80e9]
***構造体に関して [#pfeed50a] ***構造体に関して [#pfeed50a]
-たとえば +たとえば~ 
-typedef struct Hoge+typedef struct Hoge~
{ {
   int int1;    int int1;
Line 89: Line 92:
}Hoge; }Hoge;
-があったとして +があったとして~ 
-サイズがいくつになるか +サイズがいくつになるか~ 
-[obara@TandemMirror arainmento]$ ./a.out +[obara@TandemMirror arainmento]$ ./a.out ~ 
-24 +24~ 
-stHoge  0xbfde0e2c +stHoge  0xbfde0e2c ~ 
-int1      0xbfde0e2c +int1      0xbfde0e2c ~ 
-double1  0xbfde0e30 +double1  0xbfde0e30 ~ 
-char1    0xbfde0e38 +char1    0xbfde0e38 ~ 
-double2  0xbfde0e3c +double2  0xbfde0e3c ~ 
- +~ 
-ってな感じになりchar1とdouble2の間に隙間が出来た +ってな感じになりchar1とdouble2の間に隙間が出来た~ 
-これはコンパイラが勝手に境界調整(アラインメント)して適当に詰め物(パディングというらしい)を入れた +これはコンパイラが勝手に境界調整(アラインメント)して適当に詰め物(パディングというらしい)を入れた~ 
-CPUによってパディングのやり方が違うらしい +CPUによってパディングのやり方が違うらしい~ 
- +~ 
-パディングには下手に触ってはいけないらしい+パディングには下手に触ってはいけないらしい~
**malloc calloc realloc [#mae99393] **malloc calloc realloc [#mae99393]
Line 138: Line 141:
ifndef とは逆にifdefというのももある ifndef とは逆にifdefというのももある
ifndefとは逆で、ifdefは定義されていればendifまでを実行するらしい ifndefとは逆で、ifdefは定義されていればendifまでを実行するらしい
 +
 +なにやらプリコンパイル時に必要のないコードはコンパイルしないようにしているようだから、ifdefとか書いても速度は変わらないらしい
 +
 +**bitを利用したフラグ管理 [#t8bfadcf]
 +***unsignedを使う [#n460c455]
 +
 +まず
 +#define aFlag (1)~
 +#define bFlag (1 << 2)~
 +#define cFlag (1 << 3)~
 +とフラグをどのように使うかマクロ定義や定数で定義しておくとよい~
 +unsigned Flag = 0;//フラグを記録させる変数~
 +unsignedを付けないと何かで右シフトした時、補数の1がシフトしてくるかもしれない~
 +必要な関数は3つ~
 +セット、リセット、チェック~
 +void set(unsigned f)~
 +{~
 +   Flag |= f;
 +}~
 +void reset(unsigned f)~
 +{~
 +   Flag &= ~f;
 +}~
 +//~はビット反転~
 +int check(unsigned f)~
 +{~
 +   return ((Flag & f) == f)? 1 : 0;
 +}~
 +メモリの節約、可読性の向上~
 +たとえば~
 +if(check(aFlag|bFlag|cFlag))~
 +{~
 +}else~
 +{~
 +}~
 +
 +**ポインタとconst [#b0e8c424]
 +***構造体 [#oba918ac]
 +構造体~
 +typedef struct dororo{~
 +   int hoge;
 +   int tara;
 +   int pong;
 +}~
 +があるとして、
 +const dororo *a = (dororo*)malloc(sizeof(dororo) * i);~
 +という宣言をしてもメンバに値を代入できる~
 +dororoはポインタなのでconstがついていたら a=nanntyara みたいにポインタを変更することはできないが、a->hoge=100のような変更はおk
 +当然ではあるがconstは修飾した変数そのものにだけ有効である
 +
 +***javaの場合 [#vf68af87]
 +javaの場合も同様~
 +final hoge[5][5] = {
 +{1,2,3,4,5},
 +{1,2,3,4,5},
 +{1,2,3,4,5},
 +{1,2,3,4,5},
 +{1,2,3,4,5}
 +};
 +~
 +とあるとするとhogeは変更できないが、hoge[]とhoge[][]は弄る事ができる。~
 +
 +**共用体 [#uf334ffe]
 +***? [#aa9d6bfa]
 +よくわからん~
 +メモリの節約はできそうだ
 +
 +
 +**Lua [#qe15a255]
 +***今日からLuaなるスクリプトの勉学に励もうと思いました [#y00c7189]
 +LuaさんはC言語に組み込む目的でRoberto IerusalimschyさんとLuiz Henrique de FigueiredoさんとWaldemar CelesさんがC言語に組み込む事を目的としたスクリプトとして開発したっぽい~
 +ガベージコレクションはインクリメンタルGCでライセンスはMITらしい
 +
 +**luaの使い方 [#a101002d]
 +visualstudioのプロパティ→構成プロパティ→c/c++→全般→追加のインクルードディレクトリでluaのなかのincludeの追加
 +全般→リンカーで追加のライブラリディレクトリへluaのlibをを追加
 +リンカー→入力の追加の依存ファイルへlua5.1.libを追加する
 +
 +するとvisualstudioでc++にluaを使えるようになる
 +
 +**C++ [#oea30fce]
 +*** [#b573a9a8]
 +
 +**クソゲ [#e2abf5a4]
 +***フレーム [#p024da0e]
 +毎回呼ぶようなクラスにstaticなフレームを数えるunsignedを持たせておけばいいんじゃないか
 +getしてフレームを数える
 +
 +**MSVS [#yf7acc71]
 +***デバッグモード [#tc98a4c6]
 +_DEBUGが定義される
 +ifndefで囲っておけば、debugビルド時のみの処理を書ける


Front page   New List of Pages Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)

Site Search

Login

Username:

Password:


Lost Password?
Register now!!

Sub Menu

mini Calendar

Last MonthMay 2024Next Month
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today

Who's Online

26 user(s) are online (4 user(s) are browsing xpwiki)

Members: 0
Guests: 26

more...

Access Counter

Today : 7124712471247124
Yesterday : 1361113611136111361113611
Total : 2364553123645531236455312364553123645531236455312364553123645531
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com