flagflag  If you want to see English page, please click "English" Button at Left.
7: 2012-02-18 (土) 21:30:04 s10037 ソース 8: 2012-02-19 (日) 02:50:09 s10037 ソース
Line 80: Line 80:
**アラインメント [#nc3a80e9] **アラインメント [#nc3a80e9]
***構造体に関して [#pfeed50a] ***構造体に関して [#pfeed50a]
-たとえば +たとえば~ 
-typedef struct Hoge+typedef struct Hoge~
{ {
   int int1;    int int1;
Line 89: Line 89:
}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 138:
ifndef とは逆にifdefというのももある ifndef とは逆にifdefというのももある
ifndefとは逆で、ifdefは定義されていればendifまでを実行するらしい ifndefとは逆で、ifdefは定義されていればendifまでを実行するらしい
 +
 +
 +**bitを利用したフラグ管理 [#t8bfadcf]
 +***unsignedを使う [#n460c455]
 +
 +まず
 +#define aFlag (1)~
 +#define bFlag (1 << 2)~
 +#define cFlag (1 << 3)~
 +とフラグをどのように使うかマクロ定義や定数で定義しておくとよい~
 +unsigned Flag = 0;//フラグを記録させる変数~
 +必要な関数は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~
 +{~
 +}~


トップ   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 5月翌月
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
<今日>

オンライン状況

95 人のユーザが現在オンラインです。 (22 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 95

もっと...

アクセスカウンタ

今日 : 2659265926592659
昨日 : 1412914129141291412914129
総計 : 2344826923448269234482692344826923448269234482692344826923448269
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com