問題タブ [c99]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
8 に答える
4986 参照

c - C99 は C89 と下位互換性がありますか?

私は古いスタイルの C に慣れており、最近 c99 の機能を調べ始めたばかりです。1 つだけ質問があります。プログラムで c99 を使用し、c99 フラグを使用gccして以前の c99 ライブラリとリンクすると、プログラムは正常にコンパイルされますか?

では、古い C89 に固執するか、進化する必要がありますか?

0 投票する
2 に答える
252 参照

c - 部分式の評価順序

J.1の不特定の動作でSO/IEC 9899:201xを見てきました。

これは、

func2()は、func1()の前、またはfunc1()の間に実行される場合がありますか?

0 投票する
18 に答える
17087 参照

c - 最も有用なユーザー作成の C マクロ (GCC では、C99 も)?

あなたの意見では、どのCマクロが最も役立つと思いますか? Cでベクトル演算を行うために使用する次のものを見つけました。

それは次のように機能します:

0 投票する
2 に答える
240 参照

c - 後で宣言された C 参照エンティティの関数本体をインライン化できます

ヘッダー ファイルに 2 つのインライン関数があるとします。

「bar」が後で宣言されたとしても、C99 コンパイラが「foo」をインライン化すると仮定できますか? function body to large のような他の内部ルールがトリガーされないと仮定します。

C99がこれをオプションとして残していても、cコンパイラの実装はこれを行っていますか(一般的なものはIntel-C/Sun Studio/MSVCおよびgccと言います)?

0 投票する
3 に答える
24509 参照

c - Ansi C標準チェックを強制するGCCオプション?

ANSI C (C99) の警告/エラーを強制するには、どの gcc オプションを使用すればよいですか? gcc (GCC) 3.4.2 (mingw スペシャル)

私は使用しています: gcc -pedantic -ansi -std=c99 これは正しいですか?

0 投票する
9 に答える
62576 参照

c - 可変引数マクロで引数を反復処理することは可能ですか?

C99またはGCC拡張機能を使用して、可変引数マクロに渡された引数を反復処理できるかどうか疑問に思っていましたか?

たとえば、構造体とそのフィールドを引数として受け取り、構造体内の各フィールドのオフセットを出力する汎用マクロを作成することは可能ですか?

このようなもの:

0 投票する
4 に答える
3185 参照

c - C99:'for'のブロックの先頭で変数を宣言できますか?

次のコードはC99に従って合法ですか?

3行目より前に、変数xが宣言されていなかったと想定できます。

C99(PDF)

今まで私は以下を見つけただけですが、これで十分だとは思いません:

ブロックを使用すると、一連の宣言とステートメントを1つの構文単位にグループ化できます。自動保存期間を持つオブジェクトの初期化子、およびブロックスコープを持つ通常の識別子の可変長配列宣言子が評価され、宣言が行われるたびに値がオブジェクトに保存されます(初期化子なしのオブジェクトに不確定な値を格納することを含む)それがステートメントであるかのように実行の順序で、そして宣​​言者が現れる順序で各宣言内に到達しました。

そのPDFの145ページから。

0 投票する
1 に答える
3784 参照

c - 複合リテラルで匿名共用体を割り当てることは (合法的に) 可能ですか?

私は構造体を持っています:

次のような複合リテラルを割り当てようとすると、

gcc は次のような警告を表示します。

あいまいな可能性のある型に値を代入するだけで、コンパイラが確信を持てないことは明らかです。ただし、より正確に指定しようとしても、次のようになります。

私は得る:

(union <union name>)前に置くとうまくいくかもしれないと読んだことi:があります。しかし、私は匿名の組合を持つことを好みます。それを行う方法はありますか?

0 投票する
7 に答える
2901 参照

c - 有害またはサポートされていないと見なされるC99機能

私は通常C89でCコードを記述しますが、C99のいくつかの機能(intxx_tまたは__VA_ARGS__またはsnprintf)は非常に便利であり、さらに重要になる可能性があります。

C89からC99までの要件をさらに検討する前に、C99のどの機能が広くサポートされているのか、どの機能が広くサポートされていないのか、あるいは有害であるとさえ考えられているのかを知りたいと思いました。

ターゲットコンパイラのサポートを確認するだけでよいことはわかっていますが、これによりサポートが大幅に狭まります。これはオープンソースソフトウェア用であるため、より幅広いサポートが必要です。

たとえば、Solaris(suncc)コンパイラとgccを使用していますが、わずかな労力で互換性を維持できる一方で、他のコンパイラを邪魔にならないようにする可能性があります。

たとえば、私はWindowsで作業したことはなく、Windowsコンパイラについても何も知りませんが、Windowsの互換性を維持することをお勧めします。

0 投票する
1 に答える
813 参照

c - Visual Studio 2008ANSICに制限

「C99」(ANSI C)コードのみを実行できるように、MicrosoftVisualStudioを制限したいと思います。誰かが私にいくつかのガイドラインを与えることができますか?