C」タグアーカイブ

[C] グローバル変数の宣言と定義

(1) 外部定義 / external definition

定義と初期化

(2) 外部宣言 / extern declaration

翻訳単位外(ファイルの外)で定義したグローバル変数を参照する。メモリは割り当てない。

(3) 仮定義 / tentative definition

どこかに外部定義があれば外部宣言としてふるまい、なければ外部定義としてふるまう。
したがって同じ名前の仮定義が複数存在しても、ひとつのメモリ領域を参照する。

上記のソースコードだけでは『定義』であるか『宣言』であるか確定できない。

[C] switch文の中の変数宣言が失敗

1. 症状

下記のようにswitchブロックの内部で変数宣言をおこなうとコンパイルエラーとなる。

続きを読む

[gcc] ブレイクできないところにブレイクポイントを作る

下記のようにコンパイラの最適化で省略される個所にブレイクポイントを設定できないことがあります。

続きを読む

[C] 自己参照する要素をもつ構造体定義

1. 症状

自己参照する要素を持つ構造体を定義するとコンパイルエラーとなる

1.1. サンプルコード

1.2. エラーメッセージ

続きを読む

[gcc] undefined reference to log10

1. 症状

log10() を呼び出すプログラムをコンパイルすると以下のようなエラーが発生する。

続きを読む