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

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



7
「uint32_t」識別子が見つかりませんエラー
Linux CからVisual C ++ for Windowsにコードを移植しています。 Visual C ++にはわからない#include <stdint.h>のでコメントにしました。 後で、それらの'uint32_t': identifier not foundエラーの多くを見つけました。どうすれば解決できますか?
94 c++  c  visual-c++ 

7
Cでは、テキストファイルを読み取ってすべての文字列を印刷するにはどうすればよいですか
名前の付いたテキストファイルがあります test.txt このファイルを読み取ってコンテンツをコンソールに出力できるCプログラムを作成したいと思います(ファイルにASCIIテキストのみが含まれていると想定します)。 文字列変数のサイズを取得する方法がわかりません。このような: char str[999]; FILE * file; file = fopen( "test.txt" , "r"); if (file) { while (fscanf(file, "%s", str)!=EOF) printf("%s",str); fclose(file); } 999によって返される文字列fscanfがそれより大きくなる可能性があるため、サイズは機能しません。どうすればこれを解決できますか?
94 c  file  text-files 



7
まだ定義されていない場合にのみマクロを定義するのはなぜですか?
Cコードベース全体で、すべてのマクロが次のように定義されているのがわかります。 #ifndef BEEPTRIM_PITCH_RATE_DEGPS #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #endif #ifndef BEEPTRIM_ROLL_RATE_DEGPS #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #endif #ifndef FORCETRIMRELEASE_HOLD_TIME_MS #define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f #endif #ifndef TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS #define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f #endif マクロを定義するだけでなく、これらの定義チェックを行う理由は何ですか? #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f #define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f 私はこの慣例がウェブのどこにも説明されていないようです。

6
Cでmallocを使用する必要がある場合と使用しない場合
malloc()の仕組みを理解しています。私の質問は、私はこのようなものを見るでしょう: #define A_MEGABYTE (1024 * 1024) char *some_memory; size_t size_to_allocate = A_MEGABYTE; some_memory = (char *)malloc(size_to_allocate); sprintf(some_memory, "Hello World"); printf("%s\n", some_memory); free(some_memory); 簡潔にするために、エラーチェックを省略しました。私の質問は、メモリ内のいくつかの静的ストレージへのポインタを初期化することで上記のことを実行できないのですか?おそらく: char *some_memory = "Hello World"; どの時点で、保持する必要のある値を宣言/初期化する代わりに、実際にメモリを割り当てる必要がありますか?

8
トランポリン機能とは?
職場での最近の議論の中で、誰かがトランポリン機能について言及しました。 ウィキペディアで説明を読みました。機能の概要を説明するだけで十分ですが、もう少し具体的なことをお願いします。 トランポリンを説明する簡単なコードスニペットはありますか?

2
CおよびC ++での+ =の結果は何ですか?
私は次のコードを持っています: #include <stdio.h> int main(int argc, char **argv) { int i = 0; (i+=10)+=10; printf("i = %d\n", i); return 0; } gccを使用してCソースとしてコンパイルしようとすると、エラーが発生します。 error: lvalue required as left operand of assignment しかし、g ++を使用してC ++ソースとしてコンパイルした場合、エラーは発生せず、実行可能ファイルを実行すると次のようになります。 i = 20 なぜ異なる動作ですか?
93 c++  c 

6
extern inlineは何をしますか?
私inlineはそれ自体がコンパイラへの提案であり、その裁量で関数をインライン化することもしないこともあり、リンク可能なオブジェクトコードも生成することを理解しています。 私static inlineは同じことをすると思いますが(インライン化してもしなくても)、インライン化するとリンク可能なオブジェクトコードを生成しません(他のモジュールがリンクできないため)。 写真のどこにextern inline収まるのですか? プリプロセッサマクロをインライン関数で置き換え、この関数をインライン化する必要があるとします(たとえば、呼び出し元に対して解決する必要がある__FILE__と__LINE__マクロを使用するため、この呼び出された関数ではないため)。つまり、関数がインライン化されない場合に備えて、コンパイラーまたはリンカーのエラーを表示します。extern inlineこれを行いますか?(そうでない場合は、マクロを使用する以外にこの動作を実現する方法はないと思います。) C ++とCの間に違いはありますか? コンパイラのベンダーとバージョンの違いはありますか?



3
sizeof(char)!= 1、または少なくともCHAR_BIT> 8のマシンはありますか?
OverаэтотвопросестьответынаStack Overflowнарусском:Кто-нибудьвстречалвсвоейпрактикеsizeof(char)!= 1? マシン(またはコンパイラ)はどこにありsizeof(char) != 1ますか? DOES C99標準では、と言っているsizeof(char)標準準拠の実装に正確に1でなければなりませんか?ある場合は、セクション番号と引用を教えてください。 更新: バイト(最小読み取りは4バイト、アラインメント済み)をアドレス指定できないマシン(CPU)があるが、バイトの4秒(uint32_t)のみの場合、このマシンのコンパイラーはsizeof(char)4に定義できますか? sizeof(char)1になりますが、charは32ビット(CHAR_BITマクロ)になります Update2: しかし、sizeof結果はバイトではありません!CHARのサイズです。そしてcharは2バイト、または(多分)7ビットにすることができますか? Update3:わかりました 。すべてのマシンが持っていsizeof(char) == 1ます。しかし、どのマシンにありCHAR_BIT > 8ますか?
93 c  char  standards  sizeof  c99 


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