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

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

4
GCC最適化レベルはいくつありますか?
どのように多くのGCCの最適化のレベルがありますか? gcc -O1、gcc -O2、gcc -O3、gcc -O4を試しました 非常に大きな数を使用すると、機能しません。 しかし、私は試しました gcc -O100 そしてそれはコンパイルされました。 最適化レベルはいくつありますか?


19
sinとcosを一緒に計算する最も速い方法は何ですか?
値の正弦と余弦の両方を一緒に計算したい(たとえば、回転行列を作成したい)。もちろん、のように次々に別々に計算することもできますa = cos(x); b = sin(x);が、両方の値が必要な場合により速い方法があるかどうか疑問に思います。 編集: これまでの答えを要約するには: Vladは、FSINCOS両方を計算するasmコマンドがある(FSIN一人での呼び出しとほぼ同時に)と述べた Chiが気づいたように、この最適化はコンパイラーによって既に行われていることがあります(最適化フラグを使用する場合)。 カフェは機能していること、を指摘sincosしてはsincosf、おそらく利用可能であり、ちょうど含めることによって直接呼び出すことができますmath.h ルックアップテーブルを使用する tanasciusのアプローチについては、議論の余地があります。(ただし、私のコンピューターとベンチマークシナリオではsincos、32ビット浮動小数点の場合とほぼ同じ精度の場合よりも3倍速く実行されます。) Joel Goodwinは、非常に優れた精度の非常に高速な近似手法の興味深いアプローチにリンクしています(私にとって、これはテーブルルックアップよりもさらに高速です)
100 c#  c++  c  algorithm  math 

4
記憶に関してアリーナという用語の意味は何ですか?
私はプログラミングの概念としてメモリに関する本を読んでいます。後の章の1つでは、作者は「アリーナ」という単語を多用していますが、決して定義していません。私は単語の意味とそれが記憶にどのように関連するかを検索しましたが、何も見つかりませんでした。以下は、著者が用語を使用するいくつかのコンテキストです。 「シリアライゼーションの次の例には、特定の分野からのメモリ割り当てと呼ばれる戦略が組み込まれています。」 「...これは、メモリリークを処理するとき、または特定の領域から割り当てるときに役立ちます。」 「...メモリの割り当てを解除する場合は、アリーナ全体の割り当てを解除します。」 著者は、1つの章で100回を超える用語を使用しています。用語集での唯一の定義は次のとおりです。 アリーナからの割り当て-最初にアリーナを割り当て、次にプログラム自体(プロセスメモリマネージャーではなく)によってアリーナ内の割り当て/割り当て解除を管理する手法。複雑なデータ構造とオブジェクトの圧縮とシリアル化、または安全が重要なシステムやフォールトトレラントシステムのメモリ管理に使用されます。 これらのコンテキストを与えられた誰かが私のためにアリーナを定義できますか?

7
C形式の文字列の作成(印刷しない)
文字列を受け入れる関数があります。 void log_out(char *); それを呼び出すには、次のようにその場でフォーマットされた文字列を作成する必要があります。 int i = 1; log_out("some text %d", i); ANSI Cでこれを行うにはどうすればよいですか? ただ、sprintf()intを返すので、次のような少なくとも3つのコマンドを書く必要があります。 char *s; sprintf(s, "%d\t%d", ix, iy); log_out(s); これを短くする方法はありますか?
100 c  string 

11
Cでのマクロと関数
マクロを使用する方が関数を使用するよりも優れている例やケースを見てきました。 関数と比較したマクロの欠点を例を挙げて誰かが私に説明できますか?

4
符号なし整数減算は動作が定義されていますか?
結果が負になる場合に、同じ型の別の整数から符号なし整数を減算する問題があると信じているように見える誰かからコードを見つけました。したがって、このようなコードは、たまたまほとんどのアーキテクチャで機能しても、正しくありません。 unsigned int To, Tf; To = getcounter(); while (1) { Tf = getcounter(); if ((Tf-To) >= TIME_LIMIT) { break; } } これは、私が見つけたC標準からの漠然とした関連性のある唯一の引用です。 結果の符号なし整数型で表すことができない結果は、結果の型で表すことができる最大値よりも1大きい数を法として減じられるため、符号なしオペランドを伴う計算は決してオーバーフローできません。 右のオペランドが大きい場合、モジュロトランケートされた数値のコンテキストで意味がわかるように操作が調整されることを意味するために、その引用を使用できると思います。 すなわち 0x0000-0x0001 == 0x 1 0000-0x0001 == 0xFFFF 実装に依存する署名されたセマンティクスを使用するのとは対照的に: 0x0000-0x0001 ==(符号なし)(0 + -1)==(0xFFFF、ただし0xFFFEまたは0x8001) どちらの解釈が正しいですか?それはまったく定義されていますか?

7
Cで構造体の配列をどのように作成しますか?
私は各構造体が天体を表す構造体の配列を作ろうとしています。 私は構造体の経験があまりないため、配列全体ではなく構造体を使用することにしました。ただし、さまざまなエラーが何度も発生します。Iは、(例えば、Iは、様々なスレッド上とStackOverflowの上で見たことの技術を実装しようとしたCにおける構造体の配列及び-構造体の初期化配列Cがないそれらのすべては、適用可能でした)。 ここまで読んだ人のための詳細情報:動的である必要はありません。すべてのサイズを事前に知っている/定義しています。引数が定義されているいくつかの異なるメソッド(GLUTメソッドなど)でこれにアクセスするため、これもグローバル配列である必要があります。 これは、ヘッダーで構造体を定義する方法です。 struct body { double p[3];//position double v[3];//velocity double a[3];//acceleration double radius; double mass; }; 構造体の内部を定義する前に定義している他のグローバル変数のリストがあり、それらの1つはこの構造体の配列です(基本的に、霧の中で話すのが不明確な場合は、下の行上記のものの上にあります): struct body bodies[n]; ちょうどあなたが知ってnいるように、私が正当に定義したものです(つまり#define n 1)。 私はいくつかの異なる方法でこの配列を使用していますが、最も簡単で最もスペースを消費しない方法は、私のメインの単純化された形式です。ここで、各構造体のすべての変数を初期化します。何らかの方法で変数を変更する前に、変数を確実に設定します。 int a, b; for(a = 0; a < n; a++) { for(b = 0; b < 3; b++) { bodies[a].p[b] = 0; bodies[a].v[b] = …
100 c  arrays  struct 


6
SwiftでSCNetworkReachabilityを使用する方法
このコードスニペットをSwift に変換しようとしています。いくつかの困難のために私は地面から降りることに苦労しています。 - (BOOL) connectedToNetwork { // Create zero addy struct sockaddr_in zeroAddress; bzero(&zeroAddress, sizeof(zeroAddress)); zeroAddress.sin_len = sizeof(zeroAddress); zeroAddress.sin_family = AF_INET; // Recover reachability flags SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress); SCNetworkReachabilityFlags flags; BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags); CFRelease(defaultRouteReachability); if (!didRetrieveFlags) { return NO; } BOOL isReachable = flags …
99 ios  c  struct  swift  reachability 

3
この人物はMicrosoft Paintで「Hello World」をどのようにコーディングしましたか?
私はこの数日以内にこれを見たばかりで、それがどのように機能するのか理解できません。私が話すビデオはここにあります: これは、このStack Overflowの質問からの最高評価の回答です。なぜこのプログラムが3つのコンパイラによって拒否されたのですか? このビットマップはどのようにして「Hello World」のC ++プログラムを表示できますか?
99 c++  c  paint 


9
透明な背景でOpenGLレンダリングコンテキストを作成する方法
レンダリングコンテキストは通常​​、背景に単色(黒または何でも、下の画像を参照)があります。 OpenGLのものをその上にレンダリングできるようにしながら、装飾なしで透明な背景を持つウィンドウをセットアップできるかどうか疑問に思っています。 これは、三角形が画面上に浮かんでいるような錯覚を与えます。透明な背景では、背後にある可能性のあるデスクトップまたはその他のアプリケーションを確認できます。 ソースコードで例示していただけませんか? プラットフォーム:Windows(win32のみ)

8
#definesのインデント
そんなこと知ってる #defineの、などが正常にインデントされることはありません。どうして? 私は現在、#defines、#ifdefs、#elses、#endifsなどの恐ろしい混合があるいくつかのコードで作業しています。これらすべては、通常のCコードとよく混ざっています。#definesをインデントしないと、読みにくくなります。そして、インデントされたコードとインデントされていない#definesの混在は悪夢です。 #definesをインデントしないことの利点は何ですか?インデントすると悪い人になりますか?これはもっといいですか? #ifdef SDCC #if DEBUGGING == 1 #if defined (pic18f2480) #define FLASH_MEMORY_END 0x3DC0 #elif defined (pic18f2580) #define FLASH_MEMORY_END 0x7DC0 #else #error "Can't set up flash memory end!" #endif #else #if defined (pic18f2480) #define FLASH_MEMORY_END 0x4000 #elif defined (pic18f2580) #define FLASH_MEMORY_END 0x8000 #else #error "Can't set up flash …

12
C ++プリプロセッサ__VA_ARGS__引数の数
ネットで答えが見つからなかった簡単な質問。可変個引数マクロで、引数の数を見つける方法は?解決策があれば、ブーストプリプロセッサーで大丈夫です。 それが違いを生む場合、可変数のマクロ引数を変換して、プリプロセッサのシーケンス、リスト、または配列をブーストして、さらに再処理します。

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