セマフォを使用する学校向けのプロジェクトを完成させようとしています。適切なヘッダー ファイル (および pthread 用の 1 つ) を含めました。コンパイラに適切なライブラリも指定しました。これは C で書かれています。はい、これは割り当てですが、私は実装の助けを求めているのではなく、この忌まわしいコンパイル エラーを理解できないようです。
私のコードの 47 行目から 50 行目は、セマフォの「単純な」宣言と初期化です。
sem_t empty;
sem_init(&empty, 0, 5);
sem_t full;
sem_init(&full, 0, 0);
48 行目でコンパイルしようとしたときに表示されるメッセージは次のとおりです。50 行目でも同じセットが得られますが、簡潔にするために投稿しませんでした。
|48|error: expected declaration specifiers or ‘...’ before ‘&’ token|
|48|error: expected declaration specifiers or ‘...’ before numeric constant|
|48|error: expected declaration specifiers or ‘...’ before numeric constant|
|48|warning: data definition has no type or storage class|
|48|warning: type defaults to ‘int’ in declaration of ‘sem_init’|
これらはすべて main() 関数の外で宣言しました。これらのエラーを解決するにはどうすればよいですか? sem_t のデータ型がないことを示しているように見えるので困惑していますが、semaphore.h で定義されており、これを含めました。gccを使用しているUbuntuでCode::Blocksを使用してこれをコンパイルしています。このエラーは、コマンド ラインからコンパイルしても発生します。
助けてくれてありがとう。