• [解決済み】C言語で関数から `struct` を返します。

    質問 今日、私は友人たちにC言語の使い方を教えていました。 struct s. そのうちの一人が struct へのポインターを返すことになる。 malloc 編 struct sの代わりに."。 C++をメインにやっている人間からすると、このようなものは返せないと思っていました。 struct を値で指定します。C++では operator = オブジェクトを値で返す関数を持

    2022-04-11 19:52:53
  • [解決済み】C99 'restrict' キーワードの現実的な使用法?

    質問 ドキュメントやQ&Aを見ていたら、このことが書かれていました。簡単な説明を読んだのですが、基本的にポインタが他の場所を指すために使われないというプログラマからの約束になるとのことでした。 どなたか、これを実際に使用する価値のある現実的なケースを提示していただけませんか? どのように解決するのですか? restrict は、ポインタが唯一の基礎となるオブジェクトにア

    2022-04-10 15:28:58
  • [解決済み】バリアディックマクロの作り方(引数の数が可変の場合)

    質問 C言語で、特定の数ではなく、任意の数のパラメータを受け付けるマクロを書きたい。 の例です。 #define macro( X ) something_complicated( whatever( X ) ) ここで X は任意の数のパラメータ これが必要な理由は whatever はオーバーロードされ、2つまたは4つのパラメータで呼び出すことができます。

    2022-04-10 01:01:43
  • [解決済み】なぜC言語では配列のアドレスと値が等しくなるのか?

    質問 次のコードでは、ポインタの値とポインタのアドレスは予想通り異なっています。 しかし、配列の値とアドレスはそうではありません。 どうしてそうなるのでしょうか? 出力 my_array = 0022FF00 &my_array = 0022FF00 pointer_to_array = 0022FF00 &pointer_to_array = 0022FEFC

    2022-04-08 17:34:48
  • [解決済み】引数の個数でマクロをオーバーロードする方法

    質問 私は2つのマクロを持っています FOO2 と FOO3 : #define FOO2(x,y) ... #define FOO3(x,y,z) ... 新しいマクロを定義したい FOO を次のようにします。 #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) しかし、マクロは引数の数でオーバーロー

    2022-04-08 15:59:39
  • [解決済み】time_tは最終的に何に対するtypedefなのか?

    質問 私のLinuxボックスを検索したら、このtypedefが表示されました。 typedef __time_t time_t; しかし __time_t という定義があります。 どのように解決するのですか? その time_t Wikipediaの記事 の記事は、このことに光を当てています。要するに time_t はC言語仕様では保証されていません。

    2022-04-08 15:18:42
  • [解決済み】C言語で文字列を正しく比較するには?

    質問 あるプログラムに、ユーザーが単語や文字を入力し、それを記憶し、ユーザーが再び入力し、プログラムを終了するまでそれを表示するようにしようとしています。私のコードは次のようなものです。 #include <stdio.h> int main() { char input[40]; char check[40]; int i=0; printf

    2022-04-08 13:15:21
  • [解決済み】関数名を囲む括弧の意味とは?

    質問 私のプロジェクトのソースファイルの1つに、次のようなC関数定義がありました。 int (foo) (int *bar) { return foo (bar); } 注意: foo ということは、関数ポインタではありません。それとも、そうなのでしょうか? この再帰的な呼び出しはどうなっているのでしょうか? どのように解決するのですか? プリプロセッサー的なものが

    2022-04-07 22:25:42
  • [解決済み】定数ポインタと定数へのポインタの比較【重複

    質問 <余談 この質問には、すでにここで回答があります : const int*, const int * const, int const * の違いは何ですか? (21回答)

    2022-04-07 19:52:31
  • [解決済み】二乗した数字を合計するとき、負数やゼロを明示的に処理する必要がありますか?

    質問 最近、私のクラスでテストがありました。その中で、次のような問題がありました。 ある数字が与えられたとき n の桁数の合計を返す関数を C/C++ で書いてください。 二乗 . (が重要です)。その 範囲 の n は [ -(10^7), 10^7 ]です。例 もし n = 123 とすると、この関数は 14 (1^2 + 2^2 + 3^2 =

    2022-04-07 08:36:08
  • [解決済み】C言語での可変個体関数の呼び出しを転送する

    質問 C言語では、可変個体関数の呼び出しを転送することは可能でしょうか?というように。 int my_printf(char *fmt, ...) { fprintf(stderr, "Calling printf with fmt %s", fmt); return SOMEHOW_INVOKE_LIBC_PRINTF; } 上記の方法で呼び出しを転送することは、明

    2022-04-07 02:25:57
  • [解決済み】brk()システムコールは何をするのですか?

    質問 Linuxのプログラマーズマニュアルによると。 brk()およびsbrk()は、プログラムのブレークの位置を変更します。 は、プロセスのデータ・セグメントの終わりを定義します。 こっちのデータセグメントってどういう意味なんだろう?データセグメントだけなのか、データ、BSS、ヒープを合わせたものなのか? wikiによると データセグメント : データ、BSS、

    2022-04-07 02:01:36
  • [解決済み】forkとexecの違いについて

    質問 とはどのような違いがあるのでしょうか? fork と exec ? 解決方法は? を使用します。 fork と exec は、新しいプロセスを開始するための非常にシンプルな方法を提供するという点で、UNIXの精神を体現しています。 その fork の呼び出しは基本的に現在のプロセスの複製を作成します。 ほとんど を使用します。すべてがコピーされるわけでは

    2022-04-06 16:23:05
  • [解決済み】C言語で配列を0に初期化する方法は?

    質問 C言語で大きなNULL配列をグローバルで使いたいのですが、どうすればいいですか?これを行うには、以下のように入力する以外に方法はありますか? char ZEROARRAY[1024] = {0, 0, 0, /* ... 1021 more times... */ }; ? 解決方法は? グローバル変数とスタティック変数は、自動的にゼロに初期化されます。もし、単純に

    2022-04-06 10:28:06
  • [解決済み】fprintf、printf、sprintfの違い?

    質問 との違いについて、どなたかわかりやすく説明してください。 printf , fprintf および sprintf を例示してください。 どのようなストリームにあるのですか? C"ファイルハンドリングについて読みながら、この3つの間で本当に混乱しています。 どのように解決するのですか? C言語では、ストリームは抽象的なもので、プログラムの観点からは、単にバイトの

    2022-04-05 22:55:47
  • [解決済み】C言語での参照渡しについて

    質問 C言語が変数の参照渡しをサポートしていない場合、なぜこれが動作するのですか? #include <stdio.h> void f(int *j) { (*j)++; } int main() { int i = 20; int *p = &i; f(p); printf("i = %d\n", i); return 0; } 出

    2022-04-05 20:31:41
  • [解決済み】close vs shutdown socket?

    質問 C言語では、ソケットをクローズすると、そのソケットは破棄され、後で再利用できるようになると理解しました。 shutdownはどうでしょうか?説明では、そのソケットへの二重接続の半分を閉じると書いてありました。しかし、そのソケットは以下のように破壊されるのでしょうか? close システムコールを使用しますか? 解決方法は? これは 説明 は、Beejのネットワーク

    2022-04-05 18:23:18
  • [解決済み】size_tとuintptr_tの比較

    質問 C言語規格は次のことを保証しています。 size_t は、任意の配列インデックスを保持することができる型です。これはつまり、論理的には size_t は、どんなポインタ型でも保持できるはずです。Googleで見つけたいくつかのサイトでは、これは合法であり、かつ/または、常に動作するはずだと書いてありました。 void *v = malloc(10); size_t s = (s

    2022-04-05 17:23:56
  • [解決済み】親プロセスが終了した後に子プロセスを終了させる方法は?

    質問 ちょうど1つの子プロセスを生成するプロセスがあるとします。親プロセスが何らかの理由(正常、異常、kill、^C、アサート失敗、その他)で終了するとき、子プロセスを死なせたいのです。これを正しく行うにはどうしたらよいでしょうか? stackoverflowに似たような質問があります。 (以前の質問) 親プロセスが終了したときに子プロセスも終了させるにはどうしたらいいです

    2022-04-05 13:29:20
  • [解決済み】C言語によるビット反転(MSB->LSBからLSB->MSBへの変換)の効率的なアルゴリズム

    質問 次のことを実現するための最も効率的なアルゴリズムは何か。 0010 0000 => 0000 0100 MSB->LSBからLSB->MSBへの変換です。 すべてのビットを反転させる必要があります。つまり、これは ではない エンディアンススワップ 解決方法は? 注意事項 : 以下のアルゴリズムはすべてC言語ですが、お好きな言語に移植できるは

    2022-04-05 08:42:24