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

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


30
中括弧を省略するのはなぜ悪い習慣と考えられているのですか?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 なぜ誰もが私にこのようなコードを書くことは悪い習慣だと言っているのですか? if (foo) Bar(); //or for(int i = 0 i < count; i++) Bar(i); 中括弧を省略することについての私の最大の議論は、中括弧が2倍になることがあるということです。たとえば、C#でラベルのグロー効果をペイントするコードは次のとおりです。 using (Brush br = new SolidBrush(Color.FromArgb(15, GlowColor))) { for (int x = 0; x <= GlowAmount; x++) { for (int y = 0; y <= GlowAmount; y++) { g.DrawString(Text, this.Font, br, new Point(IconOffset …
177 java  c#  c++  c  coding-style 


9
intの最大値
Integer.MaxValueJavaのC / C ++のような関数で(コンパイラに従って)整数の最大値を見つけるコードはありますか?
177 c++  c  stl  limits  numeric-limits 

8
ミューテックスの例/チュートリアル?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 4ヶ月前に閉鎖。 この質問を改善する 私はマルチスレッドに不慣れで、ミューテックスの仕組みを理解しようとしていました。多くのグーグル操作を行いましたが、ロックが機能しない独自のプログラムを作成したため、どのように機能するかについて疑問が残りました。 mutexの絶対に直感的でない構文の1つはですpthread_mutex_lock( &mutex1 );。ここでは、mutexがロックされているように見えますが、私が本当にロックしたいのは他の変数です。この構文は、ミューテックスをロックすると、ミューテックスがロック解除されるまでコードの領域をロックすることを意味しますか?次に、スレッドは領域がロックされていることをどのようにして知るのでしょうか。[ 更新:スレッドは、 メモリフェンシングによって領域がロックされていることを認識しています ]。そして、そのような現象はクリティカルセクションと呼ばれるべきではないでしょうか?[ 更新:重要なセクションオブジェクトはWindowsでのみ使用できます。オブジェクトはミューテックスよりも高速で、それを実装するスレッドにのみ表示されます。それ以外の場合、クリティカルセクションは、ミューテックスによって保護されているコードの領域を指します ] 簡単に言うと、最も簡単なミューテックスのサンプルプログラムと、それがどのように機能するかについてのロジックに関する可能な限り簡単な説明を手伝っていただけませんか?これは他の多くの初心者を助けると確信しています。

30
あなたが今まで遭遇した中で最悪の実世界のマクロ/プリプロセッサの乱用は何ですか?
ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 これまでに遭遇した中で最悪の 現実のマクロ/プリプロセッサの乱用は何ですか(不自然なIOCCCが* haha​​ *に回答しないでください)? 本当に面白い場合は、短いスニペットまたはストーリーを追加してください。目標は、常に「マクロを使用しない」ことを人々に教えるのではなく、何かを教えることです。 ps:以前にマクロを使用したことがありますが、通常は「実際の」ソリューションがあるときに最終的にそれらを削除します(実際のソリューションがインライン化されてマクロに似ている場合でも)。 おまけ:マクロがマクロ以外のソリューションよりも本当に優れていた例を挙げてください。 関連質問: C ++マクロはいつ有益ですか?
176 c++  c  macros  preprocessor 


10
Cのprintf()とputs()の違いは何ですか?
私はあなたがして印刷することができます知っているprintf()とputs()。また、printf()変数を補間してフォーマットを行うことができることもわかります。 のputs()プリミティブバージョンにすぎませんprintf()。printf()文字列補間なしで可能な限り使用する必要がありますか?
176 c  string  output  printf  puts 

8
Cのvoidポインターのポインター演算
特定の型へのポインタを(言うときint、char、float、...)がインクリメントされ、その値はそのデータ型のサイズだけ増加されます。voidサイズのデータ​​を指すポインターxがインクリメントされた場合、xバイト先をどのように指すのですか?コンパイラーxは、ポインターの値に追加することをどのようにして知っていますか?


6
Linux開発プロジェクトのClangとGCC
私は大学にいます。プロジェクトではCを使用しています。GCCとClangを調査してきましたが、ClangはGCCよりもはるかにユーザーフレンドリーであるようです。結果として、LinuxのCおよびC ++で開発するために、GCCではなくclangを使用することの利点または欠点は何ですか? 私の場合、これは制作ではなく、学生レベルのプログラムに使用されます。 Clangを使用する場合、GDBでデバッグしてGNU Makeを使用する必要がありますか、それとも別のデバッガーとmakeユーティリティを使用する必要がありますか?
175 c++  c  linux  gcc  clang 

11
#include依存関係を追跡するツール[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する 何か良い提案はありますか?入力はヘッダーファイルの名前で、出力はそれを直接または間接的に含むすべてのファイルのリスト(できればツリー)である必要があります。
175 c++  c  header 

8
errnoはスレッドセーフですか?
ではerrno.h、この変数が宣言されているextern int errno;ので、私の質問は、errnoいくつかの呼び出しの後に値をチェックするか、マルチスレッドコードでperror()を使用しても安全ですか?これはスレッドセーフ変数ですか?そうでない場合、代替案は何ですか? 私はLinuxをx86アーキテクチャのgccで使用しています。
175 c  linux  multithreading  gcc 

7
i =(i、++ i、1)+ 1;とは 行う?
未定義の動作とシーケンスポイントに関するこの回答を読んだ後、小さなプログラムを書きました。 #include <stdio.h> int main(void) { int i = 5; i = (i, ++i, 1) + 1; printf("%d\n", i); return 0; } 出力は2です。ああ、私は減少が来るのを見ませんでした!ここで何が起きてるの? また、上記のコードをコンパイルしているときに、次の警告が表示されました。 px.c:5:8:警告:コンマ式の左側のオペランドは効果がありません [-Wunused-value] i = (i, ++i, 1) + 1; ^ どうして?しかし、おそらくそれは私の最初の質問の答えによって自動的に答えられます。


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