問題タブ [c-preprocessor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
39321 参照

c++ - cppマクロで改行を生成するには?

展開して改行を含む cpp マクロを作成するにはどうすればよいですか?

0 投票する
7 に答える
11174 参照

c# - C# コードで .h ファイルの define ステートメントを再利用する

#define ディレクティブにバージョン番号を含むヘッダー ファイルを含む C++ プロジェクト (VS2005) があります。ここで、ツイン C# プロジェクトにまったく同じ番号を含める必要があります。それを行う最良の方法は何ですか?

このファイルをリソースとして含め、実行時に正規表現で解析してバージョン番号を回復することを考えていますが、もっと良い方法があると思いますか?

バージョンを .h ファイルの外に移動することはできません。また、ビルド システムはそれに依存しており、C# プロジェクトは適合させる必要があります。

0 投票する
15 に答える
67084 参照

c++ - #define、enum、またはconstを使用する必要がありますか?

私が取り組んでいるC++プロジェクトでは、 4つの値を持つことができるフラグの種類の値があります。これらの4つのフラグを組み合わせることができます。フラグはデータベース内のレコードを記述し、次のようになります。

  • 新記録
  • 削除されたレコード
  • 変更されたレコード
  • 既存の記録

ここで、レコードごとにこの属性を保持したいので、列挙型を使用できます。

ただし、コードの他の場所では、ユーザーに表示するレコードを選択する必要があるため、次のように、それを単一のパラメーターとして渡すことができるようにしたいと思います。

だから、私には3つの可能なアプローチがあるようです:

また

また

スペース要件は重要です(バイト対整数)が、重要ではありません。定義を使用すると型の安全性がenum失われ、スペース(整数)が失われるため、ビット演算を実行するときにキャストする必要があります。ランダムが誤って侵入する可能性がconstあるため、私も型安全性を失うと思います。uint8

他にもっときれいな方法はありますか?

そうでない場合は、何を使用しますか、またその理由は何ですか。

PS残りのコードは、#definesのない最新のC ++でかなりクリーンであり、名前空間とテンプレートをいくつかのスペースで使用しているので、それらも問題ありません。

0 投票する
8 に答える
496 参照

c++ - オペレーティング システムに特定のライブラリのみを含める

Mac、Linux、および Windows でコンパイルしたいアプリを作成する場合、さまざまなオペレーティング システムに含める必要があるさまざまなライブラリを管理する最善の方法は何ですか。たとえば、glut opengl ツールキットを使用するには、オペレーティング システムごとに異なるインクルードが必要です。

0 投票する
2 に答える
8395 参照

c - C識別子と文字列の両方を作成しますか?

識別子と文字列の一致したリストを生成したいとします

..繰り返したり、コードを自動生成したりせずに、C /C++マクロを使用する

最初の推測:

を含む#includeファイルを追加できます

次に、次のように2回使用します。

しかし、#defineではパラメータを文字列内に入れることはできませんか?

0 投票する
18 に答える
680 参照

c - Cで変数の名前を見つける

昨夜Cで質問されましたが、大学時代からCをあまり使っていなかったので答えがわからなかったので、忘れずにここで答えが見つかるのではないかと思いました。

人が次のような定義を持っている場合:

その人は、その中にある1を使用して変数名を見つけることができますcountか?

カウントが1を指すと思ったので、そうは思いませんでしたが、1がカウントに戻る方法がわかりません。

0 投票する
20 に答える
106220 参照

c++ - #ifdef と #if - コードの特定のセクションのコンパイルを有効/無効にする方法として、どちらが優れている/安全ですか?

これはスタイルの問題かもしれませんが、私たちの開発チームには少し意見が分かれており、他の誰かがこの問題についてアイデアを持っているかどうか疑問に思っていました...

基本的に、通常の開発中にオフにするデバッグ印刷ステートメントがいくつかあります。個人的には、次のことを行うことを好みます。

ただし、一部のチームは次のことを好みます。

...これらの方法のどれがあなたにとってより良いと思われますか?またその理由は? 常に何かが定義されており、他の定義を破壊する危険がないため、最初の方が安全であると私は感じています。

0 投票する
18 に答える
38551 参照

c++ - Enum ステートメントと Define ステートメントの違い

C/C++ で define ステートメントと enum ステートメントを使用する場合の違いは何ですか (C または C++ で使用する場合に違いはありますか)?

たとえば、いつ使用する必要がありますか

以上

0 投票する
5 に答える
883 参照

c - 変数への読み取り専用アクセスにマクロを使用できますか?

通常の変数にアクセスするマクロを、読み取り専用の方法で (関数の呼び出しとして定義する以外に) 定義できますか? たとえば、次のコードの VALUE マクロは、dostuff() 関数でコンパイル エラーが発生するように定義できますか?

0 投票する
3 に答える
1679 参照

c - Cプリプロセッサトークンでアンダースコアをエスケープするには?

次のスニペットは、PROJECT (Makefile で定義) の値を取り、インクルード ファイル名を作成することになっています。たとえば、PROJECT=classifier の場合、最後に PROJECTINCSTR の classifier_ir.h を生成する必要があります。

サフィックスにアンダースコアを使用しない限り、このコードは機能することがわかりました。ただし、アンダースコアの使用はオプションではありません。コード ベースではあらゆる場所でアンダースコアが使用されています。PROJECT の値の数は限られているため、これを回避できますが、アンダースコアを使用して次のスニペットを実際に機能させる方法を知りたいです。逃れることはできますか?

編集: コンパイラは、PROJECT_ir.h ではなく、classifier_ir.h を含めようとする必要があります。