問題タブ [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 投票する
3 に答える
579 参照

c++ - フレンド機能の問題

C++ のフレンド関数で問題が発生していますが、それはプリプロセッサ ディレクティブと #include で発生した問題の兆候であると考えています。

これは私がやっていた愚かな例です。5 つのファイル: bobby.h、bobby.cpp、billy.h、billy.cpp、および main.cpp。Billy には、ReceiveMoney という保護された機能があります。Bobby には、Billy の ReceiveMoney を呼び出す bank という関数があります。つまり、ボビーが銀行に行くたびに、彼はビリーとお金を分割します。

ビリー.h

ビリー.cpp

ボビー.h

ボビー.cpp

main.cpp

多数のエラーが発生します。通常、エラー C2653: 'Bobby' : is not a class or namespace name または error C2653: 'Billy' : is not a class or namespace name

私はVS0の空のコンソールプロジェクトでこれをやっています

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

c++ - C++11x サポートを検出するためのプリプロセッサ ディレクティブはありますか?

可能な限り C++11x 拡張機能を使用したいコードがある場合、これがサポートされていない場合はフォールバックします。現在、GCC の OSX バージョンと VisualC コンパイラは C++11x をほとんどまたはまったくサポートしていないため、以下を使用します。

これは機能しますが、特に MacPorts の gcc コンパイラが c++11x をサポートしているため、実際には正しいことではありません。

#define C11X_SUPPORTEDタイプマクロはありますか?おそらくGCCだけが持っているものですか?

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

ios - 'ifnot'のObjective-Cプリプロセッサディレクティブ

次のようなプリプロセッサディレクティブの使用方法を理解しています。

しかし、SOME_VARIABLEでない場合にのみ、何かを実行したい場合はどうなりますか。

明らかに、私はまだこれを行うことができました:

。。。空の場合は残しますが、実行する方法はありますか?

ここにあるAppleのドキュメントはそうではないと示唆していますが、これは非常に基本的なニーズのようです。

基本的に、次と同等のプリプロセッサを実行したいと思います。

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

c++ - #if /#endif 前処理ディレクティブ

#ifと組み合わせたディレクティブを常に使用する必要があり#endifますか?

  1. はいの場合 - のみを使用すると何が問題になる可能性があります#ifか?
  2. いいえ - のみを使用する場合、および/#ifを組み合わせて使用​​する場合は?#if#else

ありがとうございました。

0 投票する
4 に答える
26487 参照

c++ - __cplusplusディレクティブはさまざまなコンパイラでどのように定義されていますか?

私のコンパイラはそれを199711Lに拡張します。どういう意味ですか?__cplusplus>199711LはC++11を意味することを読みました。このマクロの可能な拡張とは何ですか?それは何を意味しますか?

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

c - C プログラムで設定されたプリプロセッサ ディレクティブの値

私は次のようなものを定義したいと思います

プリプロセッサ ディレクティブを初期化する可能/有効な方法はありますか? 基本的に、この特定のディレクティブを使用して、必要に応じて新しいメモリ アドレスを更新したいと考えています。例のように:それがCコードの変数だった場合、私はそうします

しかし、この memoryAddress をプリプロセッサ ディレクティブとして使用したいので、上記のコードを実行する正しい方法を知りたいです。そのため、コンパイル プロセスが始まる前にディレクティブのデフォルト アドレスを設定しますが、後で更新したいと考えています。

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

makefile - プリプロセッサ ディレクティブは無効です

プリプロセッサ ディレクティブで技術的な問題が発生しています。

私は Makefile によってビルドされたプログラムを持っており、それをビルドする 2 つのオプションがあります: スタンドアロンまたは組み込み。
私は次のようなことをしました:

そして、組み込み目的でコンパイルするときのメインファイルに、次のように書きました。

しかし、g ++はそれを認識または理解していないようです。それは常にelseに入り、組み込みバージョンのコードをコンパイルすることはありません。

情報:
GNU Make 3.82
g++ (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9)
ファイル拡張子: .C

0 投票する
4 に答える
222 参照

c-preprocessor - コンパイラは、#define の特定の組み合わせに対してエラーを発生させる必要があります

現在のプロジェクトでは、さまざまなソリューションのパフォーマンスへの影響を確認するために多くの実験を行っています。私はすべてのコードを保持したいので、多くの #ifdef ディレクティブを使用して、いくつかの最適化のオンとオフを簡単に切り替えることができます。ただし、一部の定義の組み合わせはカバーされていません。これが発生した場合、コンパイラ エラーが表示されるようにしたいと思います。つまり、次のようになります。

それは可能ですか?

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

ios - Objective-Cプリプロセッサディレクティブの問題

定数を定義するために次のコードを実装しました。

しかし、私の変数には常に320.0f460.0fが表示されます。

更新: k3aユーザーがUI_USER_INTERFACE_IDIOMがiOS 8.3で機能しないことを発見したため、これはもはや定義ではなく、静的インラインであるためです。

この回答も確認してください: リンク

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

c++ - 関数のスコープ内で使用すると文句を言うマクロを書くことは可能ですか?

ファイル スコープでのみ呼び出したいマクロがあります。関数内で使用された場合、何らかの方法で (コンパイル時または実行時に) 文句を言うことができれば素晴らしいことです。これは可能ですか?

編集: これまでのコメントに対応するには: コードベースで繰り返し使用される静的オブジェクトがあります。これらのオブジェクトはあらゆる場所で使用されるため、これらのオブジェクトの作成をより速く入力できるようにするマクロを作成しました。これは、キーストロークの節約が生産性/煩わしさにとって重要になるところまで来ています。

この時点まで、私はこれらのオブジェクトを関数内の静的として作成していました。これがスレッドセーフではないことが最近発見されました。これらのオブジェクトをすべて関数の外に移動して、遅延ではなくプログラムの開始時に作成されるようにすることにしました。このバグが将来再び発生するのを防ぐために、フェイルセーフがあればいいのではないかと思いました.

明確にするために、これは進歩をまったく妨げていません。それが簡単/可能であれば、マクロへの素晴らしい追加になると私が思ったものです。