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

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


4
なぜみんな標準C型よりもtypedefなのですか?
あなたが使用したい場合はQtのを、あなたは包含する必要がありquint8、quint16等々と。 あなたが使用したい場合はGLibのを、あなたは歓迎していguint8、guint16など。 上のLinuxがあるu32、s16などと。 uC / OSはSINT32などUINT16を定義します。 そして、それらのいくつかの組み合わせを使用する必要がある場合は、トラブルに備えることをお勧めします。上なので、あなたのマシンがu32されるtypedef以上日間longとquint32されるtypedef以上日間intとコンパイラが文句を言うでしょう。 なぜ誰もがこれをしているのです<stdint.h>か?図書館にとってこれはある種の伝統なのでしょうか?
103 c++  c  stdint 

12
なぜC文字リテラルが文字ではなく整数なのですか?
、C ++でsizeof('a') == sizeof(char) == 1。これは'a'文字リテラルでありsizeof(char) == 1、標準で定義されているため、直感的に理解できます。 ただし、Cではsizeof('a') == sizeof(int)。つまり、C文字リテラルは実際には整数であるように見えます。なぜ誰か知っていますか?私はこのCの癖について多くの言及を見つけることができますが、なぜそれが存在するのかについての説明はありません。
103 c++  c  char  sizeof 

7
C / C ++マクロのカンマ
このようなマクロがあるとしましょう #define FOO(type,name) type name どのように使用できますか FOO(int, int_var); しかし、必ずしもそれほど単純ではありません。 FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 もちろん、次のことができます。 typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK 人間工学的ではありません。プラスタイプの非互換性に対処する必要があります。これをマクロで解決する方法はありますか?
103 c++  c  macros  c-preprocessor 


8
浮動小数点値の精度を維持するためのPrintf幅指定子
文字列をスキャンして戻すときに元の浮動小数点値が取得printfされるように、出力を必要な有効桁数に自動的にフォーマットする浮動小数点指定子に適用できる幅指定子はありますか? たとえば、floataを2小数点以下の精度で出力するとします。 float foobar = 0.9375; printf("%.2f", foobar); // prints out 0.94 出力をスキャンするとき0.94、元の0.9375浮動小数点値が返されることを保証する標準準拠の保証はありません(この例では、おそらくそうしません)。 に渡された元の値にスキャンして戻すことができるようにprintf、浮動小数点値を必要な有効桁数に自動的に出力する方法を教えてくださいprintf。 に渡す最大幅float.hを導出するためにいくつかのマクロを使用することができますprintfが、必要な有効桁数、または少なくとも最大幅に自動的に出力する指定子はすでにありますか?

3
int32、int、int32_t、int8、int8_tの違い
int32_t最近、Cプログラムのデータ型に遭遇しました。私はそれが32ビットを格納することを知っていますが、同じことintをint32しませんか? また、charプログラムで利用したいです。int8_t代わりに使用できますか?違いはなんですか? 要約すると、Cのint32、int、int32_t、int8、int8_tの違いは何ですか?
103 c  int  declaration 

7
Cでの16進文字の印刷
1行の文字を読み取ってから、その文字に相当する16進数を出力しようとしています。 たとえば"0xc0 0xc0 abc123"、最初の2文字がc016進数で残りの文字がabc123ASCIIであるという文字列がある場合、次のようになります。 c0 c0 61 62 63 31 32 33 ただし、printf使用%xすると ffffffc0 ffffffc0 61 62 63 31 32 33 なしで必要な出力を取得するにはどうすればよい"ffffff"ですか?そして、c0(および80)だけがを持ちffffff、他の文字はないのはなぜですか?
103 c  hex  printf 

4
-D_XOPEN_SOURCEは何を意味しますか?
最近、この引数がないとgccがコンパイルできないコードに遭遇しました。gccのmanページを確認しましたが、この特定のオプションは見つかりませんでした。私は見つけましたがXOPEN_SOURCE、それが何をするのかほとんど説明がありませんでした。 誰かが詳しく説明してもらえますか?私が知っている-D_XOPEN_SOURCEように、異なる値に設定することができ400、600しかし、それらは何をしますか?
103 c  gcc 

2
voidでの&&の意味* p = && abc;
コードに出くわしましたvoid *p = &&abc;。&&ここの意味は何ですか?右辺値参照については知っていますが&&、このコンテキストでの使用は異なります。は何を&&示していvoid *p = &&abc;ますか?
102 c++  c  gcc  operators 

10
数字の後の「f」
何をf数字が示した後?これはCまたはObjective-Cのどちらですか?これを定数に追加しないことで違いはありますか? CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f); なぜ私が書けないのか説明してもらえますか? CGRect frame = CGRectMake(0, 0, 320, 50);

7
プログラムをゆっくり実行する
LinuxのOSパラメータを変更してC ++プログラムをより遅く実行する方法はありますか?このようにして、特定のプログラムが実際に遅いマシンで実行された場合にどうなるかをシミュレーションしたいと思います。 言い換えれば、より高速のマシンは、その特定のプログラムに対してより低速のマシンとして動作する必要があります。
102 c++  c  linux  unix  ubuntu 

6
構造体定義は.hまたは.cファイルに入れるべきですか?
structヘッダーのsの完全な定義と単なる宣言の両方を見てきました。1つのメソッドに他のメソッドよりも利点はありますか? それが違いを生む場合、私は通常、そのような構造体をtypedefで .h typedef struct s s_t; 編集する 明確にするために、オプションは、ヘッダーファイルでの宣言とクラスでの定義、またはヘッダーファイルでの宣言と定義の両方です。どちらを使用しても、どちらかが同じユーザビリティになるはずです。1つがリンケージによるものであっても、そうではありませんか。 私は、例えば、多くのほとんどの重複を見ていないここが、何の完全一致。この点で間違っている場合は修正してください。
102 c  header  struct 

6
snprintfおよびVisual Studio 2010
残念なことに、プロジェクトでVS 2010を使用できず、次のコードは非標準準拠のコンパイラーを使用してビルドできないことに気づきました。 #include <stdio.h> #include <stdlib.h> int main (void) { char buffer[512]; snprintf(buffer, sizeof(buffer), "SomeString"); return 0; } (エラーでコンパイルが失敗:C3861: 'snprintf':識別子が見つかりません) 私はこれがVS 2005の昔のケースであることを覚えており、まだ修正されていないことにショックを受けています。 Microsoftが標準のCライブラリを2010年に移行する計画があるかどうか、誰か知っていますか?

11
単一の引数を持つprintf(変換指定子なし)が廃止されたのはなぜですか?
私が読んでいる本でprintfは、単一の引数(変換指定子なし)は非推奨であると書かれています。代用をお勧めします printf("Hello World!"); と puts("Hello World!"); または printf("%s", "Hello World!"); 誰かがなぜprintf("Hello World!");間違っているのか教えてもらえますか?本には、脆弱性が含まれていると書かれています。これらの脆弱性は何ですか?

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