問題タブ [preprocessor-directive]
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.
c - プリプロセッサディレクティブ#includeを無効化/除外できますか?
例:2つの.hファイルがある場合
process1.hおよびprocess2.h
また、出力変数が異なる2つの関数が含まれています。
process1.h:
process2.h:
これはmain.cで実行できますか?
c++ - プログラムに C/C++ のような前処理機能を追加する
入力ファイルを処理する C++ プログラムがあります。プログラムに前処理機能を追加したい。つまり、入力ファイルは次のようになります。
次に、私のプログラムは親ファイルからのテキストを自動的にインクルードし、#define などの前処理を行う必要があります。プログラムを呼び出す前に (g++ -E を使用して) スクリプトを使用することもできますが、プログラム内でより柔軟に実行できるようにしたいと考えています。
また、「g++ -E」は、「実際のファイルの内容」セクションの行がハッシュで始まる場合、プリプロセッサ ディレクティブを想定します (g++ -E は、コードを 2 つのセクションに分割したいことを知りません!)。
さらに、 「実際のファイルの内容」セクション内で ifdef 機能だけを使用できれば、それは素晴らしいことです。
プログラム内に C++ コードを埋め込んで、gcc コンパイラの前処理機能から必要な機能のみを使用できますか?
objective-c - Objective c のさまざまなタイプの画面のプリプロセッサ ディレクティブ?
次のように、iPhone 用アプリで Retina スクリーンと通常のスクリーンを区別する必要があります。
何か案が?
c++ - #if 内部 #define?
#defines を介して多くのコードを生成するレガシー コードを使用しています。#ifdef
を の中に入れることはできないことはわかっています#define
が、 は#if
可能ですか? 特定のタイプの特殊化を追加したいと思います。(代わりにテンプレートを使用するなどの大きな変更を加えることなく)。次のサンプルでは不可解なエラーが発生するため、これは方法ではありません。
ios - デリゲートの実装を制御するために条件付きコンパイラを使用しますか?
コンパイラ指令を使用して、特定のデリゲートが実装されているかどうかを制御することは可能ですか?
たとえば、次のコードでは、定数が定義されている場合にのみライブラリを含めたいと思います。
が未定義の場合kShouldLoadFromCSV
、実装したくありませんCHCSVParserDelegate
。インターフェイス宣言にコンパイルディレクティブを貼り付けようとしましたが、うまくいきませんでした。
これを行う方法はありますか?
c - ifndef の問題、警告 [Pe014]: 前処理ディレクティブの予想される終了後の余分なテキスト
エラーメッセージ:
警告[Pe014]: 前処理ディレクティブの予想される終了後に余分なテキストがあります
c++ - #ifで何ができませんか?
config.hで定義されたプリプロセッサ構成オプションがたくさんあります。私はそれらを次のように使用します:
config.hには、次の定義が含まれています。
上記は機能しません。構成(デバッグ、リリースなど)やその他の定義に基づいて、これらの構成オプションをオンまたはオフにしたい。私がそうすると、それも機能しません:
#if CONFIG_OPTION1
条件が満たされているように見えても、私は決して中に入ることはありません。私が書くとき#if defined(_DEBUG)
、それはうまくいきます#if
が、条件が失敗するのでマクロを使用します。どうすればこれを修正できますか?
c++ - プリプロセッサディレクティブを処理して実際のプリプロセッサ出力を提供するツールはありますか?
重複の可能性:
プリプロセッサ出力
Android用のSTLポートをデバッグしていることに気づきました。全体を通して多くの(10-100?)プリプロセッサディレクティブを使用して、プリプロセッサによって実際に出力されるコードを決定します。たくさん#if
と#ifdef
ブロック。
これらを実行して、実際にコンパイラに送信されるテキストを表示できるツールはありますか?プリプロセッサの出力を確認することはできますか?
c++ - コンパイル時の定数に応じて、同じ識別子を #define または typedef することは許容される慣行と見なされますか?
Intel Math Kernel Library には、ヘッダー ファイルに次のコードが含まれています。
here および hereで説明されているように、この構造体定義は、ユーザーが次のように記述してオーバーライドできます。
ヘッダファイルがインクルードされる前。この行でMKL_Complex16
は is 'd です。これは、文字列がどこでも#define
リテラル文字に置き換えられることを意味します。std::complex<double>
そうでない場合は、typedef
'ed' になり、コンパイラにより多くの情報が提供されます。
これは容認できる慣行と見なされますか? Intelによって実装されているので、そうに違いないと思います。しかし、いくつかのコードをデバッグしようとすると、非常に混乱することがわかりました。
objective-c - Xcodeの終了していない条件付きディレクティブ
ここで何が問題になっていますか:
なぜこのエラーが発生するのですか?