適当なメモ書きです…。
変数
関数やブロック内で宣言された変数で、そのブロックが終了しても値を保持している。staticで宣言する。
int a1;
static int a2;
int func(int b1)
{
int b2;
static int b3;
...
for(b2=0;b2<10;b2++){
int c1;
static int c2;
}
}
動的メモリ確保
- メモリ確保したら、すぐに初期化を行う
- freeで解放した領域がOSに完全に返却されるのは、プロセス終了後。
構造体初期化 例1
struct exmple a;
memset(&a, 0, sizeof(a));
構造体初期化 例2
struct exmple *a;
memset(a, 0, sizeof(*a))
その他
- ログが出力されている場所(ファイル名、行数、関数名)を表示する。
fprintf(err, "FILE:%s", __FILE__); //ファイル名
fprintf(err, "LINE:%d", __LINE__); //行数
fprintf(err, "FUNC:%s", __FUNCTION__); //関数名
別名の関数を作成し、#defineによって関数名を置き換える。
void *func1
define func1 func2
#ifdefと
#endifでくくる
。
FUNC_Aが以下のように定義されていると
#define FUNC_A
…がコンパイルされる。
#ifdef FUNC_A
...
#endif
...にエラーになるコードを組み込めば、実際にコンパイルされているか確認できる。
最終更新:2009年06月07日 22:14