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

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


3
講師が作成したすべてのCファイルが最初の行の#で始まるのはなぜですか?
私はいくつかのCコースのノートを通過します。すべての Cプログラムのソースファイル#は、プログラムの最初の行の1つの行から始まります。 次に、空白行があり、その後にmain関数が続く他のものに続きます。 の理由は何#ですか? (現在、期限切れであり、実際に質問することはできません。) 次に例を示します。 # #include <stdio.h> int main() { printf("Hello, World!"); return 0; }
431 c  c-preprocessor 



17
標準ライブラリのみを使用して整列メモリを割り当てる方法は?
就職の面接の一環としてテストを終えたばかりで、Googleを参考にしても、1つの質問で困惑しました。StackOverflowの乗組員がそれで何ができるかを見たいのですが。 このmemset_16aligned関数には、16バイト境界で整列されたポインターを渡す必要があります。そうしないと、クラッシュします。 a)どのようにして1024バイトのメモリを割り当て、それを16バイト境界に揃えますか? b)のmemset_16aligned実行後にメモリを解放します。 { void *mem; void *ptr; // answer a) here memset_16aligned(ptr, 0, 1024); // answer b) here }

12
floatとdoubleの違いは何ですか?
倍精度と単精度の違いについて読みました。しかし、ほとんどの場合で、floatかつdouble交換可能であると思われる、すなわち、1つまたは他のを使用すると、結果に影響を与えていないようです。これは本当ですか?floatとdoubleはいつ交換可能ですか?それらの違いは何ですか?


8
NSLog C構造体(CGRectやCGPointなど)は可能ですか?
C構造を構成するすべてのプロパティを明示的に入力しなくても、C構造をデバッグできるようにしたいと考えています。 つまり、次のようなことができるようになりたいです。 CGPoint cgPoint = CGPointMake(0,0); NSLog(@"%@",cgPoint); 明らかに '%@'は機能しないため、質問です。

15
構造とユニオンの違い
a structとaの違いを示す良い例はありますunionか?基本的に私はそれstructがそのメンバーのすべてのメモリをunion使用し、最大のメンバーのメモリ空間を使用することを知っています。他のOSレベルの違いはありますか?
411 c  struct  unions 

23
重い計算のためにFortranはCよりも最適化が簡単ですか?
Fortranは重い計算ではCよりも高速である、または高速になる可能性があることを時々読んだ。それは本当ですか?私はFortranをほとんど知らないことを認めなければなりませんが、これまでに見たFortranコードは、Cにはない機能が言語にあることを示していませんでした。 それが本当なら、その理由を教えてください。数の計算に適した言語やライブラリを教えないでください。それを行うためにアプリやライブラリを作成するつもりはありません。ただ興味があるだけです。
410 c  performance  fortran 

21
C / C ++に標準の符号関数(signum、sgn)はありますか?
負の数に対して-1を返し、正の数に対して+1を返す関数が必要です。 http://en.wikipedia.org/wiki/Sign_function 自分で作成するのは簡単ですが、標準ライブラリのどこかにあるはずです。 編集:具体的には、フロートで機能する関数を探していました。
409 c++  c  math 



12
どうすればprintfファミリーを使用してsize_t変数を移植して印刷できますか?
タイプの変数がありsize_t、それを使用してそれを印刷したいと思いprintf()ます。可搬性のある印刷に使用するフォーマット指定子は何ですか? 32ビットマシンで%uは正しいようです。でコンパイルしg++ -g -W -Wall -Werror -ansi -pedanticましたが、警告はありませんでした。しかし、そのコードを64ビットマシンでコンパイルすると、警告が表示されます。 size_t x = <something>; printf("size = %u\n", x); warning: format '%u' expects type 'unsigned int', but argument 2 has type 'long unsigned int' 警告をに変更すると、期待どおりに消え%luます。 問題は、32ビットと64ビットの両方のマシンで警告が発生しないようにコードを記述するにはどうすればよいですか? 編集:回避策として、1つの答えは、変数を十分な大きさの整数に「キャスト」して、たとえばunsigned longを使用して出力することだと思い%luます。それはどちらの場合でも機能します。他にアイデアがあるかどうか探しています。
405 c  printf 


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