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

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

13
exit()関数の使用
exit()私の本のプログラムのような関数をいつどのように使用できるか知りたい: #include<stdio.h> void main() { int goals; printf("enter number of goals scored"); scanf("%d",&goals); if(goals<=5) goto sos; else { printf("hehe"); exit( ); } sos: printf("to err is human"); } 実行すると、ERROR:call to undefined function exit()と表示されます。 また、プログラムが実行されているウィンドウを閉じるオプションを作成する方法を知りたいですか?たとえば、いくつかのオプションがあり、そのうちの1つが「メニューを終了する」というメニュー方式のプログラムを作成しました。どうすればプログラムを終了できますか(ウィンドウを閉じるなど)?
99 c 



2
Linuxカーネルモジュール内のファイルの読み取り/書き込み
私はなぜカーネルからファイルを読み書きすべきではないかについてのすべての議論を知っています。代わりに/ procまたはnetlinkを使用してそれを行う方法。とにかく読み書きしたい。また、Driving Me Nuts-カーネルで実行してはいけないことも読ん でいます。 ただし、問題は2.6.30がエクスポートしないことsys_read()です。むしろそれはに包まれていSYSCALL_DEFINE3ます。モジュールで使用すると、次の警告が表示されます。 WARNING: "sys_read" [xxx.ko] undefined! WARNING: "sys_open" [xxx.ko] undefined! insmodリンクが正しく行われないため、明らかにモジュールをロードできません。 質問: 2.6.22以降(sys_read()/ sys_open()はエクスポートされない)でカーネル内を読み書きする方法は? 一般的に、SYSCALL_DEFINEn()カーネル内からマクロにラップされたシステムコールを使用する方法は?


12
Cでコマンドライン引数を解析していますか?
Cで行ごと、単語ごと、または文字ごとに2つのファイルを比較できるプログラムを記述しようとしています-l -w -i or --。コマンドラインオプションで読み取ることができる必要があります... オプションが-lの場合、ファイルを1行ずつ比較します。 オプションが-wの場合、ファイルを単語単位で比較します。 オプションが-の場合、次の引数が最初のファイル名であると自動的に想定します。 オプションが-iの場合、大文字と小文字を区別しない方法でそれらを比較します。 デフォルトでは、ファイルを文字単位で比較します。 -wと-lが同時に入力されず、ファイルが2つ以上ない限り、オプションが何回入力されるかは問題ではありません。 コマンドライン引数の解析をどこから始めればよいのかもわかりません。助けてください :( だから、これは私がすべてのために思いついたコードです。まだエラーチェックはしていませんが、複雑すぎて書いていないのでしょうか。 /* * Functions to compare files. */ int compare_line(); int compare_word(); int compare_char(); int case_insens(); /* * Program to compare the information in two files and print message saying * whether or not this was successful. …

9
Cで現在の時刻を取得する
システムの現在の時刻を取得したい。そのために、私はCで次のコードを使用しています。 time_t now; struct tm *mytime = localtime(&now); if ( strftime(buffer, sizeof buffer, "%X", mytime) ) { printf("time1 = \"%s\"\n", buffer); } 問題は、このコードがランダムな時間を与えていることです。また、ランダムな時間は毎回異なります。システムの現在の時刻が必要です。
97 c  time  time-t  localtime 


11
関数の早期復帰の効率
これは、経験の浅いプログラマーとして頻繁に遭遇する状況であり、特に最適化しようとしている私の野心的でスピード重視のプロジェクトについて疑問に思っています。主要なCのような言語(C、objC、C ++、Java、C#など)と通常のコンパイラーの場合、これら2つの関数は同じくらい効率的に実行されますか?コンパイルされたコードに違いはありますか? void foo1(bool flag) { if (flag) { //Do stuff return; } //Do different stuff } void foo2(bool flag) { if (flag) { //Do stuff } else { //Do different stuff } } 基本的に、breakINGまたはreturnINGを早くするときに、直接的な効率のボーナス/ペナルティはありますか?スタックフレームはどのように関係していますか?最適化された特別なケースはありますか?これに大きな影響を与える可能性のある要因(インライン化や "Do stuff"のサイズなど)はありますか? 私は常に、マイナーな最適化よりも読みやすさを改善することを支持しています(パラメーターの検証でfoo1がよく見られます)。 そして、私は時期尚早の最適化の落とし穴を知っています...うーん、それらはいくつかのつらい思い出です。 編集:私は答えを受け入れましたが、EJPの答えはaの使用returnが実質的に無視できる理由をかなり簡潔に説明しています(アセンブリでreturnは、関数の終わりに「ブランチ」を作成しますが、これは非常に高速です。ブランチはPCレジスタを変更し、両方のためにも、キャッシュとパイプライン、かなり微小である。)特にこの場合のためにに影響を与える可能性があり、それは文字通り違いはありませんif/elseし、return関数の最後に同じブランチを作成します。

14
c / c ++でログbase(2)を書き込む方法
log(base 2)関数を書く方法はありますか? C言語には2つの組み込み関数があります->> 1. logベースeです。 2. log10ベース10; しかし、私はベース2のログ関数が必要です。これを計算する方法。
97 c++  c 

4
ヘッダーファイルがどこからインクルードされているかを見分ける方法は?
g ++がインクルードファイルを見つけた場所を確認するにはどうすればよいですか?基本的に私が #include <foo.h> g ++は、パスを追加または変更するインクルードオプションを使用して、検索パスをスキャンします。しかし、今日の終わりに、g ++がコンパイルすることを選択したfoo.hの絶対パスを伝える方法はありますか?無数の検索パスにfoo.hが複数ある場合は特に関連があります。 それを達成する方法が不足しています...デフォルトとすべてのインクルードオプションを含めた後、g ++に最終的な検索パスを教えてもらう方法はありますか?
97 c++  c  gcc  include  g++ 

7
make:「すべて」に対して何もする必要はありません
私はメイクファイルを作成するために、例えばpgmを通過しています。 http://mrbook.org/tutorials/make/ 私のフォルダeg_make_creationには、次のファイルが含まれています。 desktop:~/eg_make_creation$ ls factorial.c functions.h hello hello.c main.c Makefile Makefile # I am a comment, and I want to say that the variable CC will be # the compiler to use. CC=gcc # Hwy!, I am comment no.2. I want to say that CFLAGS will be the #options …
97 c  makefile 


9
main()メソッドはCでどのように機能しますか?
mainメソッドを記述するために2つの異なるシグネチャがあることを知っています- int main() { //Code } または、コマンドライン引数を処理するために、次のように記述します。 int main(int argc, char * argv[]) { //code } ではC++、私たちはメソッドをオーバーロードが、中にすることができます知っているCどのようにコンパイラがこれら二つの異なるシグネチャ取り扱うないmain機能を?
96 c++  c 

14
Eclipse CDT for C標準ライブラリヘッダーの「未解決のインクルード」エラー
私は日食用にCDTをセットアップし、単純なhello world Cプログラムを作成しました。 #include <stdio.h> int main(void){ puts("Hello, world."); return 0; } プログラムは正しくビルドおよび実行されますが、Eclipseは、"Unresolved inclusion: <stdio.h>"マウスを上に置くと表示されるインクルージョンステートメントの横にこの黄色の疑問符を表示し続けます。 プログラムの実行には影響しませんが、私はかなり煩わしいと思います。 誰でもそれを削除する方法を知っていますか?

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