C言語

適当なメモ書きです…。

変数

  • 静的変数
 関数やブロック内で宣言された変数で、そのブロックが終了しても値を保持している。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
...にエラーになるコードを組み込めば、実際にコンパイルされているか確認できる。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2009年06月07日 22:14
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。