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

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

9
a +++++ bが機能しないのはなぜですか?
int main () { int a = 5,b = 2; printf("%d",a+++++b); return 0; } このコードにより、次のエラーが発生します。 エラー:増分オペランドとしてlvalueが必要です しかし、と全体にスペースを入れるa++ +と++b、問題なく動作します。 int main () { int a = 5,b = 2; printf("%d",a++ + ++b); return 0; } 最初の例でエラーは何を意味しますか?
88 c  lvalue 


7
Linuxカーネルはどのようにしてそれ自体をコンパイルできますか?
自分のマシンにLinuxシステムをインストールしたときのLinuxカーネルのコンパイルプロセスがよくわかりません。 ここに私を混乱させたいくつかのものがあります: カーネルはCで書かれていますが、コンパイラをインストールせずにカーネルをコンパイルするにはどうすればよいですか? カーネルをコンパイルする前にCコンパイラをマシンにインストールした場合、コンパイラをインストールせずにコンパイラ自体をコンパイルするにはどうすればよいですか? 返事をありがとう、私は数日間とても混乱しました。

8
要素を効率的に検索する方法
最近私はインタビューをしていて、彼らは私に「検索」の質問をしました。 問題は: (正の)整数の配列があり、各要素が隣接要素と比較されるか、+1または-1比較されると仮定します。 例: array = [4,5,6,5,4,3,2,3,4,5,6,7,8]; 次に7、その位置を検索して返します。 私はこの答えを出しました: 値を一時配列に格納し、並べ替えてから、バイナリ検索を適用します。 要素が見つかった場合は、一時配列内のその位置を返します。 (数値が2回発生している場合、最初の発生を返します) しかし、彼らはこの答えに満足していないようでした。 正しい答えは何ですか?



7
関数ポインタを別の型にキャストする
void (*)(void*)コールバックとして使用する関数ポインターを受け入れる関数があるとしましょう。 void do_stuff(void (*callback_fp)(void*), void* callback_arg); さて、私がこのような関数を持っている場合: void my_callback_function(struct my_struct* arg); これを安全に行うことはできますか? do_stuff((void (*)(void*)) &my_callback_function, NULL); 私はこの質問を調べ、「互換性のある関数ポインター」にキャストできると言っているいくつかのC標準を調べましたが、「互換性のある関数ポインター」の意味の定義が見つかりません。

4
スタック変数はGCCによって整列されていますか__attribute __((aligned(x)))?
私は次のコードを持っています: #include <stdio.h> int main(void) { float a[4] __attribute__((aligned(0x1000))) = {1.0, 2.0, 3.0, 4.0}; printf("%p %p %p %p\n", &a[0], &a[1], &a[2], &a[3]); } そして、私は次の出力を持っています: 0x7fffbfcd2da0 0x7fffbfcd2da4 0x7fffbfcd2da8 0x7fffbfcd2dac なぜの住所 a[0]の倍数ではないは0x1000ですか? 正確には __attribute__((aligned(x)))は何ですか?私はこの説明を誤解しましたか? gcc4.1.2を使用しています。


7
AT&Tと比較したIntelアセンブリ構文の制限[クローズ]
現在のところ、この質問は私たちのQ&A形式には適していません。回答は事実、参考資料、または専門知識によって裏付けられることを期待していますが、この質問は、討論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善して再開できると思われる場合は、ヘルプセンターにアクセスしてガイダンスを入手してください。 8年前に閉鎖されました。 私にとって、Intel構文ははるかに読みやすいです。Intel構文のみに集中してアセンブリフォレストをたどる場合、何かを見逃しますか?AT&Tに切り替えたい理由はありますか(他のAT&Tアセンブリを読むことができる以外に)?私の最初の手がかりは、gdbがデフォルトでAT&Tを使用していることです。 これが重要な場合、私の焦点は、Linux / BSDおよびC言語との関係アセンブリおよび構文にのみ焦点を当てています。
88 c  linux  assembly  bsd 

2
gcc / g ++:「そのようなファイルやディレクトリはありません」
g++ 次の形式のエラーが表示されます。 foo.cc:<line>:<column>: fatal error: <bar>: No such file or directory compilation terminated. を使用してCプログラムをコンパイルする場合も同じgccです。 何故ですか? 注意:この質問はこれまで何度も質問されてきましたが、そのたびに質問者の状況に固有のものでした。この質問の目的は、他の人が、一度限りの複製として閉じることができるという質問をすることです。よくある質問。
88 c++  c  gcc  g++  c++-faq 

15
rails installpg-'libpq-fe.hヘッダーが見つかりません
$ sudo bundle install 結果 Fetching gem metadata from https://rubygems.org/........... Fetching gem metadata from https://rubygems.org/.. Using rake (0.9.2.2) Using i18n (0.6.1) Using multi_json (1.3.6) Using activesupport (3.2.8) Using builder (3.0.4) Using activemodel (3.2.8) Using erubis (2.7.0) Using journey (1.0.4) Using rack (1.4.1) Using rack-cache (1.2) Using rack-test (0.6.2) Using hike …

4
エラー:不明なタイプ名 'bool'
ソースコードをダウンロードして、スキャナーのファイルをコンパイルしたかった。このエラーが発生します: [meepo@localhost cs143-pp1]$ gcc -o lex.yy.o lex.yy.c -ll In file included from scanner.l:15:0: scanner.h:59:5: error: unknown type name ‘bool’ In file included from scanner.l:16:0: utility.h:64:38: error: unknown type name ‘bool’ utility.h:74:1: error: unknown type name ‘bool’ In file included from scanner.l:17:0: errors.h:16:18: fatal error: string: No such file or directory …
88 c  gcc  lex 

4
Linuxでは、rand()が数値を繰り返す頻度がMacよりはるかに多いのはなぜですか?
私が取り組んでいるプロジェクトの一部としてCにハッシュマップを実装していて、ランダム挿入を使用してそれをテストしていたのはrand()、Linuxの方がMacよりはるかに頻繁に数値を繰り返すようであることに気付いたときです。RAND_MAX両方のプラットフォームで2147483647 / 0x7FFFFFFFです。私はそれを、バイト配列RAND_MAX+1-longを作成し、RAND_MAX乱数を生成し、それぞれが重複であるかどうかをメモし、見られるようにリストからそれをチェックするこのテストプログラムに削減しました。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> int main() { size_t size = ((size_t)RAND_MAX) + 1; char *randoms = calloc(size, sizeof(char)); int dups = 0; srand(time(0)); for (int i = 0; i < RAND_MAX; i++) { int r = rand(); if (randoms[r]) { // printf("duplicate at …
87 c  linux  macos  random 

5
「Objective-CはC ++より厳密にCのスーパーセットです」とはどういう意味ですか?
私が読んだところから:なぜObjective-CはAppleコミュニティの外ではあまり人気がないのですか? Objective-CはCのスーパーセット(実際にはC ++よりも厳密)なので、下位互換性の問題は発生しません。Cで実行できることはすべてObjective-Cで実行できます。 スーパーセットであることは、妊娠しているようにバイナリです。Obj-CはCのスーパーセットですが、C ++はそうではありません。 スーパーセットとはどういう意味ですか?どのようにして、objective-CはCにより近い//後方互換性を持つでしょうか?Objective-Cは、C ++よりもCの哲学にどのように準拠していますか? 目的のCコンパイラ(100%互換)を使用して、Cプログラムを変更せずにコンパイルできますか? これは、どちらが優れているかという戦争よりも、プログラミング言語の設計と互換性についての質問です。
87 c++  objective-c  c 

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