問題タブ [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.

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

c++ - #line とはどういう意味ですか?

次の行は何をしますか?

そして、拡張機能はどうですか?

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

c++ - LinuxからMinGWへのコードの移植

PC上のファイルとディレクトリを作成/削除/名前変更/検索できる小さなクラスを書いています。

私はクラスを正常に作成し、Linuxで実行しました。

MinGWで同じクラスコードを実行しようとすると、エラーが発生していました。Linuxではmkdir関数、Cygwinには2つの引数(ディレクトリ名、モード権限)がありますが、MinGWでは1つの引数(ディレクトリ名)しかありません。

私の質問は次のとおりです。a)両方のOSでコードを機能させるための最良の方法は何ですか。b)使用したことはありませんが、プリプロセッサディレクティブは#ifdefined .....#endif ..またはそのようなもののように配置できると聞きました。c)プリプロセッサディレクティブを使用することは優れたプログラミング手法です。私が学んだように、プリプロセッサディレクティブは最小限に使用する必要があります。

誰かがこれで私を助けることができます:

LinuxとCygwinで動作する私のコードは次のとおりです。

0 投票する
1 に答える
6070 参照

c++ - トークン"("の前に二項演算子がありません

エラー:

コード:

質問:

  1. コンパイラは新しいdefined()呼び出しを待っていますか?
  2. Linux(およびバリアント)またはWindowsのバージョンを検出できますか?

前もって感謝します。

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

objective-c - Xcode の #elseifdef の無効な前処理ディレクティブ

どうして:

「無効な前処理ディレクティブ」前処理コンパイル エラーが発生しますか?

SOME_TARGET_FLAG と SOME_ANOTHER_TARGET_FLAG は、ターゲット ビルド設定 (-D<FLAG_NAME>パターン) で定義された「その他の C フラグ」にすぎません。

#elseifdefディレクティブは Xcode でサポートされていませんか?

0 投票する
1 に答える
472 参照

c++ - #defineディレクティブと複数の置換?

私はプログラミングに比較的慣れていないので、C ++(Visual Studio 2010を使用)でwxWidgetsを使用する方法を学ぼうとしています。

wxWidgetsヘッダーファイル「app.h」を調べていたところ、#define理解できないディレクティブがいくつかあります。次に例を示します。

1つの「識別子」と1つの「置換」で#defineを見るのに慣れているので、このマクロに2つの「識別子」(wxIMPLEMENT_APP(appname)wxIMPLEMENT_WX_THEME_SUPPORT)と1つの「置換」(wxIMPLEMENT_APP_NO_THEMES (appname))があるのか​​、1つの「識別子」(wxIMPLEMENT_APP(appname))と2つの「置換」(wxIMPLEMENT_WX_THEME_SUPPORTおよびwxIMPLEMENT_APP_NO_THEMES(appname))。

このマクロをどのように理解しますか?

オンラインや教科書で「マクロ」「プリプロセッサディレクティブ」「テキスト置換マクロ」「#defineディレクティブ」などで検索してみましたが、説明付きの例が見つかりませんでした。私がここに持っているもの。

0 投票する
1 に答える
224 参照

c - Haskell外部関数インターフェースで「#type」とはどういう意味ですか?

Haskellsendfileパッケージで次のコードを見つけました。

http://patch-tag.com/r/mae/sendfile/snapshot/current/content/pretty/src/Network/Socket/SendFile/Linux.hsc

1)#type意味と 2) なぜこのエラーが発生するのか

私自身が次のように使用しようとすると?:

スプライス.hs:

(GHC 7.4.x を使用)

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

c# - ビルド構成を使用して、VisualStudioでプロジェクトの複数のバージョンを作成します

、、と同じように、構成を使用してプロジェクトの複数のバージョンを作成する必要が#defineあり#ifます#endif

これらのプリプロセッサディレクティブを使用することの欠点は、プロジェクトのほぼすべてのファイルでシンボルを定義する必要があることですが、ビルド構成でこれを処理したいと思います。

ビルド構成がこれを行うのに役立つかどうかさえわかりません。

「Development」という名前の構成と「QA」という名前の構成を作成すると、コードは次のようになります。

親切にこれを達成するために私を導いてください。

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

c++ - WindowsOSを検出するためのC++コンパイル時マクロ

コードがコンパイルされているWindowsOSを検出するために存在するC++コンパイル時マクロはありますか。私は基本的にWin7でのみ特定の機能をサポートしたいと思っています。だから私はこのようなことをすることに興味があります

これを行うための他のより良い方法はありますか?

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

c - 定数の一部を置き換えるコンパイラ ディレクティブはありますか

私は現在、マイクロコントローラ用の組み込み C を使用していますが、文字が 1 つだけ異なるペリフェラルがいくつかある場合があります (たとえば、UARTA、UARTB など)。各ペリフェラルのコードは、他の点では同一のレジスタの文字を除いて、多くの場合同一です。たとえば、周辺 AI をセットアップするには、次のようにします。

また、ペリフェラル BI をセットアップするには、レジスタ名が 1 文字だけ置き換えられていることを除いて、まったく同じコードを使用します。

#ifdef/コードのコピー/貼り付けや検索/置換を行わなくても、ターゲットとする周辺機器を変更できるようにしたいと考えています。この動作を実装できるコンパイラ ディレクティブまたは巧妙なトリックがあり、コードを 1 回だけ記述する必要がありますか? 周辺機器の最後の文字を #define したいのですが、そのようなものはコードの悪臭に危険なほど近づきそうです。

0 投票する
1 に答える
290 参照

windows-7 - OS が WIN 7 SP1 かどうかを判断する #if プリプロセッサ ディレクティブは何ですか?

コンパイルするマシンが Windows 7 SP1 を実行しているかどうかに基づいた条件付きコンパイルが必要です。

http://support.microsoft.com/kb/2517589の回避策がありますが、 #ifdef _WIN7_SP1 で保護されていない限り、コードをチェックインしたくありません。そうしないと、他の開発者がコンパイルできなくなりますwin7-sp1 以外のマシンで。

私は少しグーグルを持っていましたが、役に立つものは何も見つかりませんでした。