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

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

16
Enterキーが押されるのを待たずに、標準入力から文字をキャプチャします
私がこれを行うことはめったにないので、私がこれを行う方法を思い出すことはできません。しかし、CまたはC ++では、改行を待たずに(Enterキーを押す)標準入力から文字を読み取る最良の方法は何ですか。 また、理想的には、入力文字を画面にエコーしません。コンソール画面に影響を与えずにキーストロークをキャプチャしたいだけです。
174 c++  c  inputstream 


29
Cポインターについて人々は何が難しいと思いますか?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。事実、参考文献、専門知識によって回答が裏付けられることを期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問が改善され、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 ここに投稿された質問の数から、ポインタとポインタ演算について頭を悩ますとき、人々がいくつかのかなりの根本的な問題を抱えていることは明らかです。 その理由を知りたいです。彼らは私に大きな問題を実際に引き起こしたことはありません(私は最初に新石器時代にそれらについて知りましたが)。これらの質問に対するより良い答えを書くために、人々が難しいと思うことを知りたいのです。 それで、ポインタに苦労している場合、または最近「突然」気がついた場合、問題の原因となったポインタの側面は何でしたか?
173 c  pointers 



9
C関数に対するexternキーワードの影響
Cでは、extern関数宣言の前に使用したキーワードの影響に気付きませんでした。最初は、私が定義するときと考えextern int f();、単一のファイルに力あなたが外で、ファイルのスコープのそれを実装します。しかし、私は両方がわかった: extern int f(); int f() {return 0;} そして extern int f() {return 0;} gccからの警告なしで、問題なくコンパイルします。私が使用しましたgcc -Wall -ansi。//コメントすら受け付けません。 extern 関数定義の前に使用する効果はありますか?それとも、関数の副作用のない単なるオプションのキーワードですか? 後者の場合、標準の設計者が文法を余分なキーワードで散らかすことを選択した理由がわかりません。 編集:明確にするために、extern変数での使用法は知っていますが、私は関数についてのみ質問しexternています。
171 c  syntax  standards 


9
Cの関数から `struct`を返します
今日、私は2人の友人にC structの使い方を教えていました。それらの1つはstruct、関数からを返すことができるかどうかを尋ねましたが、「いいえ!代わりに、動的にmalloc編集されたstructs へのポインターを返します。」 主にC ++を行う人から来て、struct値でs を返すことができないと思っていました。C ++ではoperator =、オブジェクトのをオーバーロードでき、値によってオブジェクトを返す関数を持つことは完全に理にかなっています。ただし、Cではそのオプションがないため、コンパイラーが実際に何をしているのかを考えさせられました。以下を検討してください。 struct MyObj{ double x, y; }; struct MyObj foo(){ struct MyObj a; a.x = 10; a.y = 10; return a; } int main () { struct MyObj a; a = foo(); // This DOES work struct b = a; // This does …
171 c 

5
Cの正規表現:例?
ANSI Cで正規表現を使用する方法のいくつかの簡単な例とベストプラクティスが欲しいのman regex.hですが、あまり役に立ちません。
171 c  regex 

13
C ++では、食べていないものの代金を払っていますか?
CおよびC ++での次のhello worldの例を考えてみましょう。 main.c #include <stdio.h> int main() { printf("Hello world\n"); return 0; } main.cpp #include <iostream> int main() { std::cout<<"Hello world"<<std::endl; return 0; } godboltでそれらをコンパイルしてアセンブリすると、Cコードのサイズはわずか9行(gcc -O3)になります。 .LC0: .string "Hello world" main: sub rsp, 8 mov edi, OFFSET FLAT:.LC0 call puts xor eax, eax add rsp, 8 ret ただし、C ++コードのサイズは22行(g++ …
170 c++  c 

2
rand()を使用するときにこの特定のカラーパターンが表示されるのはなぜですか?
私は次のように画像ファイルを作成しようとしました: uint8_t raw_r[pixel_width][pixel_height]; uint8_t raw_g[pixel_width][pixel_height]; uint8_t raw_b[pixel_width][pixel_height]; uint8_t blue(uint32_t x, uint32_t y) { return (rand()%2)? (x+y)%rand() : ((x*y%1024)%rand())%2 ? (x-y)%rand() : rand(); } uint8_t green(uint32_t x, uint32_t y) { return (rand()%2)? (x-y)%rand() : ((x*y%1024)%rand())%2 ? (x+y)%rand() : rand(); } uint8_t red(uint32_t x, uint32_t y) { return (rand()%2)? (y-x)%rand() : ((x*y%1024)%rand())%2 …
170 c  image  random 



2
このコードはどのようにしてインドの地図を生成しますか?
このコードは、インドの地図を印刷します。それはどのように機能しますか? #include <stdio.h> main() { int a,b,c; int count = 1; for (b=c=10;a="- FIGURE?, UMKC,XYZHello Folks,\ TFy!QJu ROo TNn(ROo)SLq SLq ULo+\ UHs UJq TNn*RPn/QPbEWS_JSWQAIJO^\ NBELPeHBFHT}TnALVlBLOFAkHFOuFETp\ HCStHAUFAgcEAelclcn^r^r\\tZvYxXy\ T|S~Pn SPm SOn TNn ULo0ULo#ULo-W\ Hq!WFs XDt!" [b+++21]; ) for(; a-- > 64 ; ) putchar ( ++c=='Z' ? c = c/ 9:33^b&1); return …
169 c  obfuscation 

1
doubleを32ビットintに丸める高速な方法の説明
Luaのソースコードを読んだとき、Luaはa macroを使用してa doubleを32ビットに丸めることに気付きましたint。を抽出するmacroと、次のようになります。 union i_cast {double d; int i[2]}; #define double2int(i, d, t) \ {volatile union i_cast u; u.d = (d) + 6755399441055744.0; \ (i) = (t)u.i[ENDIANLOC];} ここでENDIANLOCは、リトルエンディアン、ビッグエンディアンのエンディアンネスとして定義されています。Luaはエンディアンを慎重に処理します。またはのような整数型を表します。01tintunsigned int 私は少し調査しましたがmacro、同じ考えを使用するより簡単な形式があります。 #define double2int(i, d) \ {double t = ((d) + 6755399441055744.0); i = *((int *)(&t));} またはC ++スタイルで: inline int double2int(double d) …

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