2017-03-04 4 views
0

私はthisソリューションを見たことがありますが、同じエラーが発生しています。クラスについては、gnuではなくc99コンパイラに切り替える必要がありましたが、今はtimespecが壊れているようです。 "timespecの記憶容量の大きさは知られていません"と一緒に、 "CLOCK_MONOTONIC undeclared"、 "不完全な型の構造体timespec 'へのポインタの逆参照、および未使用の変数警告がありますが、一度私はコンパイラの問題を解決します。timespecのストレージサイズがわからない

「時計」このような支援がC99ではなく、POSIXは、それはでは有効になっていないとして、私は、私はTIMESPECの変数を宣言しています方法に何か問題がある

struct timespec startTime;

+1

は「私たちが代わりにGNUのC99コンパイラに切り替える必要があった」 - それは決定的に正当な理由ではありません。 gccはC11だけでなくC99もサポートしています。単に '-std ='オプションについて学ぶだけです。 6年前に現在の唯一の標準C11で取り消されたCのバージョンを学ぶ理由についてのもう一つの疑問。あなたの問題を書いてください:[ask]を読んで[mcve]を提供してください。今見ているように、あなたは使用すべきではない 'struct'の内部にアクセスしているようです。つまり、あなたのコードは設計によって壊れています。 – Olaf

+0

新しい割り当ての詳細で、彼は具体的にフラグ '-std = c99'を使用するように私たちに教えてくれました。申し訳ありませんが、私は説明にこれを入れることを意味しました。私はこれを使用することを選択していない、我々はする必要があります。また、構造体の内部にアクセスしようとすることについて詳しく説明できます。 – grizzle

+1

gccはc99に準拠していないので、gccを使用しないことを意味します。しかし、あなたのコメントによると** gccを使用する(質問にあなたの声明と矛盾する)、私が推奨するオプションだけで。まず、プログラミングの前に何が起こっているのかを理解する必要があります。そして、私の前のコメントを注意深く読んで理解してください。これはスプーン給食サービスではありません! – Olaf

答えて

3

を想像できないでしょうデフォルト。それはあなたがコンパイラにオプション-D_POSIX_C_SOURCE=199309Lを渡すか、問題のソースファイル(複数可)の先頭に

#define _POSIX_C_SOURCE 199309L 

を入れたい有効にするには

See also man clock_gettime for reference.

関連する問題