問題タブ [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 投票する
1 に答える
976 参照

c - C11 cor 1:2012 とは?

ISO/IEC 9899:2011/Cor 1:2012と呼ばれる C11 標準に対する修正があることに気付きました。

この更新で何が変更されましたか?

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

c - (x++, y) + (y++, x) は未定義または未指定ですか? 未指定の場合、何を計算できますか?

コンマ シーケンス演算子は、式にシーケンス ポイントを導入します。これは、以下のプログラムが未定義の動作を回避することを意味するかどうか疑問に思っています。

未定義の動作を回避する場合でも、未指定のままである可​​能性があります。つまり、いくつかの可能な値の 1 つを返します。C99 では しか計算できないと思いますが1、実際には、さまざまなバージョンの GCC がこのプログラムを を返す実行可能ファイルにコンパイルします2。Clang は を返す実行可能ファイルを生成します。これ1は私の直感と一致しているようです。

最後に、これはC11で変更されたものですか?

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

c - なぜC標準には、役に立たない多くの安全でない関数が含まれているのですか?

たとえば、C標準に多くの安全でない関数が含まれているのはなぜですか。これらの関数は役に立たず(優れたプログラムでは使用されません)、有害getcharです。なぜC標準には、それらの代わりに便利な関数、たとえば、、が含まれていないのgetchですgetcheか?これは多くの例の1つにすぎません...

UPD私は混乱しました:getsの代わりにgetchar

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

c - -fms-extensions なしで「ネストされた構造体」を作成していますか?

私はいくつかのプロパティを持つ構造体を持っています:

同じプロパティを持つ構造体もありますが、id.

C11 が匿名構造体をサポートしていることはわかっているので、次のようなことができます。

ただし、内部構造体にタグを付けると失敗します。のような非標準のコンパイラ オプションを使用せずに、このようなネストされた構造体を作成することは可能-fms-extensionsですか?

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

c++ - 関数定義外の __func__

__func__C (C99 / C11) および C++ で定義済みの変数を関数の外で使用するとどうなりますか?

-Wall -W -pedanticgcc 4.7.2 は (有効な状態で)警告のみを表示し、何も出力しません。

標準はそれについて明示的に何も言いません:

ISO/IEC 14882:2011

8.4.1 一般 [dcl.fct.def.general]

8関数ローカルの定義済み変数__func__は、形式の定義static const char __func__[] = "function-name"; が提供されたかのように定義されます。ここで、関数名は実装定義の文字列です。そのような変数が、プログラム内の他のオブジェクトのアドレスとは異なるアドレスを持つかどうかは指定されていません。

ISO/IEC 9899:2011

6.4.2.2 事前定義された識別子

1識別子__func__は、各関数定義の左中括弧の直後に宣言があるかのように、翻訳者によって暗黙的に宣言されるものとしますstatic const char __func__[] = "function-name"; 。ここで、関数名は字句的に囲んでいる関数の名前です。

ウブ?エラー?または、他の何か?

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

c - マクロは、渡された型に基づいて有効なグローバル名をどのように定義できますか?

タイトルは一目瞭然だと思いますが、私が達成しようとしていることを説明する例を次に示します。

charint、および単一単語の型ではすべて正常に機能しunsignedますが、複数のキーワードを持つ型やその他の型に関しては、トークンの貼り付け ( a ## b) を使用すると、空白 (例: ) が原因で有効な名前が生成されませんdo_something_with_foo bar

私が考えることができる最も簡単な解決策はDEFINE_OPS_FOR_TYPE、2 番目のパラメーターとして有効な名前を取るようにマクロを変更することです。例えば:

これは期待どおりに機能しますが、非常に複雑であっても、他の可能な解決策に興味があります。を使用することを考え_Genericましたが、名前の定義にどのように役立つかわかりません。

別の解決策を考えられますか?

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

c++ - C と C++ の __func__ 値の違い

C 標準では _ _ func _ _ value が常に囲んでいる関数の名前であることが保証されているのに、C++ (もちろん C++11 のことです) では実装定義の任意の文字列 (たとえば、パラメータなしの関数 foo がある場合、「Some string fdgdg asdfs fsdf sd」のようなものを取得できます)?

ISO/IEC 9899:2011

6.4.2.2 事前定義された識別子

セマンティクス

1 識別子 _ _ func _ _ は、各関数定義の左中括弧の直後に宣言 static const char _ func _ [] = "function-name";のように、翻訳者によって暗黙的に宣言されるものとします。function-name は字句的に囲んでいる関数の名前です。

ISO/IEC 14882:2011

8.4.1 一般 [dcl.fct.def.general]

8 関数ローカルの定義済み変数 _ _ func _ _ は、静的 const char _ _ func _ _ [] = "関数名 "; という形式の定義であるかのように定義されます。function-name は実装定義の文字列です。そのような変数が、プログラム内の他のオブジェクトのアドレスとは異なるアドレスを持つかどうかは指定されていません。

そして、これの理由は何ですか?現在の関数名を取得できない場合、「不明」のようなものを返しますか?

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

c - C99+での構造体の部分的な割り当て

英語が下手でごめんなさい。

コード(C99以降)を想定します。

今は何f.aですか?C規格はこれについて何か言っていますか?

部分的な初期化の場合、標準では、初期化されていないすべてのメンバーが「適切なゼロ」(0整数、0.0浮動小数点、NULLポインターなど)に初期化されることが保証されていることを知っています。しかし、最後のステートメントは(私が理解しているように)初期化ではありませんf。すでに存在しているからです。よくわかりません。

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

c - Cの_Thread_localストレージクラス指定子?

私は本CHowto Program 7thで、次の名前の新しい標準Cストレージクラスに関するメモを読みました_Thread_local

新しいC標準では、ストレージクラス指定子が追加されています_Thread_localが、これはこの本の範囲を超えています。

Googleで探しましたが、ここには何も表示されません。誰かが私にそれについてのリンクを教えてもらえますか?

0 投票する
5 に答える
5976 参照

c - char16_tで動作するstrlen()はありますか?

質問が言うように:

C++ソリューションのみを検索して見つけました。

私のコンパイラはGCC 4.7です。

編集:

code points明確にするために、私はのカウントではなく、のカウントを返すソリューションを探していましたcharacters

これら2つはUTF-16、の外の文字を含む文字列ではまったく異なりますBMP