
11.1
オブジェクトと関数の宣言
175
ラムそのものでは変更できないが、クロックチップの割り込みハンドラのような別のもので
変更されるオブジェクトだ。
extern const volatile int ticks;
修飾型を用いた宣言をさらにいくつか示す。
const int limit = 10000; //
定数
int
オブジェクト
typedef struct {double x, y, r;} Circle; //
構造体型
const Circle unit_circle = {0, 0, 1}; //
定数
Circle
オブジェクト
const float v[] = {1.0F, 0.5F, 0.25F}; //
定数
float
要素の配列
volatile short* restrict vsPtr; // volatile short
への
restrict
修飾ポインタ
ポインタ型では、アスタリスクの右の型修飾子はポインタそのものを、左のは指してい
るオブジェクトの型を修飾する。最後の例でポインタ
vsPtr
は
restrict
で修飾され、指し
ているオブジェクトは
volatile
で修飾される。
restrict
修飾ポインタも含め詳細について
は「9.3ポインタと型修飾子」参照。
11.1.4
宣言と定義
識別子は好きなだけ宣言できるが、そのスコープ内では1つの宣言だけが定義になり得
る。外部リンケージを持つオブジェクトや関数の定義をヘッダファイルに置くと多重定義に
なることもあるので、好ましくな