タグ付けされた質問 「c」

Cは、システムプログラミング(OSおよび組み込み)、ライブラリ、ゲーム、クロスプラットフォームに使用される汎用プログラミング言語です。このタグは、ISO 9899標準で定義されているC言語に関する一般的な質問で使用する必要があります(特に指定のない限り、最新バージョン9899:2018。バージョン固有のリクエストには、c89、c99、c11などのタグも付けます)。CはC ++とは異なり、合理的な理由がない限り、C ++タグと組み合わせるべきではありません。



3
高速整数型が他の整数型よりも速いのはなぜですか?
ISO / IEC 9899:2018(C18)では、7.20.1.3に規定されています。 7.20.1.3最短の最小幅整数型 1次の各タイプは、少なくとも指定された幅を持つすべての整数型の中で動作するのに通常最も高速な整数型を指定しています268)。 2 typedef名int_fastN_tは、幅がN以上uint_fastN_tの最速の符号付き整数型を示します。typedef名は、幅がN以上の最速の符号なし整数型を示します。 3次のタイプが必要です。 int_fast8_t、int_fast16_t、int_fast32_t、int_fast64_t、 uint_fast8_t、uint_fast16_t、uint_fast32_t、uint_fast64_t このフォームの他のすべてのタイプはオプションです。 268)指定されたタイプがすべての目的で最速であるとは限りません。実装が1つの型を選択する明確な根拠がない場合、符号型と幅の要件を満たす整数型を選択するだけです。 しかし、これらの「高速」整数型がより高速である理由は明記されていません。 これらの高速整数型が他の整数型よりも速いのはなぜですか? 高速整数型はC ++ 17のヘッダーファイルでも利用できるため、C ++で質問にタグを付けましたcstdint。残念ながら、ISO / IEC 14882:2017(C ++ 17)では、その説明についてそのようなセクションはありません。それ以外の場合は質問の本文にそのセクションを実装しました。 情報:Cでは、のヘッダーファイルで宣言されていますstdint.h。
107 c++  c  performance  types  int 

23
Objective-Cを学ぶ前に最初にCを学ぶ[終了]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 私は野心的なApple開発者であり、Objective-C、そして最終的にはCocoaフレームワークに移行する前に、まずCを学ぶ方がよいのであれば、コミュニティの意見を聞きたいと思います。 私の直感は、Cを学ぶと言っています。
107 c  objective-c  cocoa 



12
「for」ループ内の「for」ループで同じカウンター変数名を使用できますか?
forループ内のループに同じカウンター変数を使用できforますか? それとも変数は互いに影響し合うのでしょうか?次のコードでは、2番目のループにやなどの別の変数を使用するj必要がありiますか、それとも問題ありませんか? for(int i = 0; i < 10; i++) { for(int i = 0; i < 10; i++) { } }
107 c  loops  for-loop  nested 

13
printf()で後続ゼロを回避する
printf()ファミリーの関数のフォーマット指定子につまずきます。私が欲しいのは、小数点の後に指定された最大桁数のdouble(またはfloat)を印刷できるようにすることです。私が使用する場合: printf("%1.3f", 359.01335); printf("%1.3f", 359.00999); 私は得る 359.013 359.010 希望の代わりに 359.013 359.01 誰かが私を助けてくれますか?
107 c  printf 

7
size_tとunsigned intの違いは?
私はとても混乱していsize_tます。私はインターネットで検索しましたが、どこでもsize_t符号なしの型であるため、負ではない値しか表すことができません。 私の最初の質問は、非負の値のみを表すために使用する場合、unsigned int代わりに使用しないのはなぜsize_tですか? 私の2番目の質問です:あるsize_tとunsigned int交換可能かどうか?そうでない場合、なぜですか? そして、誰かが私size_tにその良い例を簡単に教えてくれますか?
107 c  types  unsigned 

3
gccがCのいくつかのステートメントを最適化しないようにする方法は?
ページをダーティにする(ページテーブルエントリのダーティビットをオンにする)ために、次のようにページの最初のバイトに触れます。 pageptr[0] = pageptr[0]; しかし実際には、gccはデッドストアの削除によってステートメントを無視します。gccによる最適化を防ぐために、ステートメントを次のように書き直します。 volatile int tmp; tmp = pageptr[0]; pageptr[0] = tmp; トリックはうまくいくようですが、やや醜いです。同じ効果を持つディレクティブまたは構文はありますか?また、-O0フラグを使用したくないので、パフォーマンスが大幅に低下します。
107 c  gcc 

2
##および__LINE__を使用したCマクロの作成(位置決めマクロを使用したトークンの連結)
行番号に基づいて名前を持つ関数を作成するCマクロを作成したいと思います。私は次のようなことができると思いました(実際の関数は中括弧内にステートメントがあります): #define UNIQUE static void Unique_##__LINE__(void) {} 私は次のようなものに拡大することを望みました: static void Unique_23(void) {} それはうまくいきません。トークン連結では、位置決めマクロは文字通り処理され、最終的に次のように展開されます。 static void Unique___LINE__(void) {} これは可能ですか? (はい、これがどれほど役に立たないように見えても、私がこれを実行したい本当の理由があります)。
107 c  macros  concatenation  token 

6
「make」コマンドライン引数(-D)からCソースコードにマクロ定義を渡す方法は?
私は通常、 "make command line"から "makefile"にオプション-Dname = valueを使用してマクロ定義を渡します。定義はメイクファイル内からアクセスできます。 同様のコンパイラオプションを使用して、「makefile」から「ソースコード」にマクロ定義を渡します。-Dname = value(多くのコンパイラでサポートされています)。この定義は、ソースコードでアクセスできます。 私が今必要としているのは、メイクファイルのユーザーが、メイクファイルの内容を変更することなく、「make.exeコマンドライン」から「ソースコード」に任意のマクロ定義をすぐに渡せるようにすることです。 したがって、ユーザーは次のように入力できます。make -f mymakefile.mk -SOMEOPTION var = 5 次に、コードmain.cが直接varを参照できます。 int main() { int i = var; }
107 c  macros  makefile 




弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.