問題タブ [c11]

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 投票する
2 に答える
288 参照

c - C の printf() の大きなフィールド幅

C 標準は、以下のプログラムが標準出力に何ギガバイトものスペースを生成しないという言い訳をしますか?

Mac OS X 10.8 および Linux でテストしたところ、x 42x.

C11 標準には、(7.21.6.1:4) と記載されています。変換された値の文字数がフィールド幅よりも少ない場合、フィールド幅の左側 (または、後述の左調整フラグが指定されている場合は右側) に (デフォルトでは) スペースが埋め込まれます。フィールド幅は、アスタリスク * (後述) または非負の 10 進整数の形式を取ります。」</p>

C99 の文言は同じです。

フィールド幅が として指定されている*場合、対応する引数はint(7.12.6.1:5) として取得されます。しかし、ハードコーディングされたフィールド幅がint.

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

c - ctype.h はまだ unsigned char を必要としますか?

従来、厳密に言えばsigned charctype.h述語に a を渡すのはエラーでした。述語は -1 から 255 に対してのみ定義されていたため、-128 から -2 は配列境界の外側を読み取ってしまう可能性がありました。

これは修正されましたか、それとも厳密に言えばunsigned char、最新バージョンの C で未定義の動作を回避するために使用する必要がありますか?

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

c - C11 がラムダ関数をサポートしない理由

新しい C++11 標準ではラムダ関数がサポートされていますが、これは便利な機能だと思います。C と C++ の標準が互いに異なることは理解していますが、C11 がラムダ関数をサポートしていない理由がわかりません。色々使えそうです。

C11 標準の開発者がこの機能を含めないことを選択した理由はありますか?