関数の記憶クラス

・関数に指定できるクラスはstaticとexternのいずれかである。
・static記憶クラスを持つ関数は、その関数が定義されているファイル内の関数からのみ呼び出す事ができる。
 他のファイルの関数からstatic関数を呼び出すことはできない。
・extern記憶クラスを持つ関数は、他のファイルの関数から呼び出す事ができる。
 関数の記憶クラスを省略した場合はexternが暗黙的に採用される。
・特定のファイル内の、特定の処理に特化した独立性の低い関数の場合は、名前の競合を避ける為にstatic記憶クラスを指定する事が推奨される。
C > 関数 | comments (0) | trackbacks (0)

typedef

構文
typedef 既存の型名 新しい型名


typedef struct { int x, int u } Point;


・構造体の宣言でタグ名は省略できるため、
 必要でなければ無名構造体に別名を与えた方が効率的である。
・構造体に別名を与えておくと、structキーワードを指定する必要がなくなり、
 構造体変数の宣言が簡単になる。
C > 基礎 | comments (0) | trackbacks (0)

enum

構文
enum タグ名 {
 列挙子1 = 定数, 列挙子2 = 定数 ...
} 列挙変数;



enum { MSG_OK, MSG_YESNO };
enum { ID_OK = 1, ID_YES, ID_NO };


タグ名と末尾の列挙変数の宣言は、構造体や共用体と同じように
省略することができる。


#include <stdio.h>

void main()
{
 enum { Sun,Mon,Tue };

 int x = Sun;
 switch ( x ) {
 case Sun:
  printf( "日曜日の処理" );
  break;
 case Mon:
  printf( "月曜日の処理" );
  break;
 case Tue:
  printf( "火曜日の処理" );
  break;
 }
}

C > 基礎 | comments (0) | trackbacks (0)