問題タブ [ifdefine]
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++ - .cpp および .h ファイルの #ifdefs
これは初歩的な質問です。
基本的に、条件付きコンパイルを導入するために必要なファイルがあり.h
ます。との両方に10個の関数が含まれています。そのうちの2つだけに対して条件付きコンパイルを行う必要があります。したがって、ファイル内の2 をラップするつもりでした.cpp
#ifdef
.h
.cpp
.h
#ifdef
質問 1: C++ ファイルでも関数の実装を再度ラップする必要がありますか? 違うと思いますよね?確かめたい。
質問 2: これら 10 個の関数の関数ポインターの配列があります。#ifdef
2 つの関数についても、この配列内でラップする必要がありますか?
c++ - #define 内の #error - C++ で発生する可能性があります (マクロ MyMacro を呼び出すと、定数が定義されていない場合にエラーが発生します)?
いくつかの条件 (マクロのパラメーターではなく の存在) に基づいて、#define INITED
値を返すか、次のようなコンパイラ エラーを生成するマクロを定義したいと考えています。
私は(のためにmyIdea.h
)試しました:
しかし、そのコードはエラーを生成します(私が望んでいたものではありません)expected macro format parameter
。
私はそのコードを望んでいないことに注意してください(動作しますが、少し異なることをしています):
上記のコードは、INITED が定義されていない場合にのみエラーを生成します。AND INITED has not been definedを呼び出したときにMyMacro()
のみエラーを生成したい。
私は最初のコードの奴隷ではありませんが、結果が上記で説明した方法とまったく同じように機能することを望んでいます (マクロMyMacro IF 定数が初期化されているときにエラーを生成します)。
c++ - _HAVE_BOOST マクロは C++ に組み込まれていますか? それはどこから来たのですか?
オプションで C++ Boost ライブラリを使用しているように見えるコードを読んでいます。それは次のとおりです。
コードの後半には、この「_HAVE_BOOST」に依存するステートメントがいくつかあります。C++ ライブラリが適切にインポートされている場合、_HAVE_BOOST は単に true に設定されているフラグだと思います。
「_HAVE_BOOST」フラグは C++ ifdef 構文の組み込み部分ですか? つまり、このフラグについて Google を試しましたが、ドキュメントが見つかりませんでした。また、ファイルの先頭には no#include<boost>
が存在します。#include<boost>
このブースト機能はファイル全体で廃止されているようです -- これが追加された場合、_HAVE_BOOST は true に設定されますか?
#ifdef に付随する大文字の種類を説明するためのリストまたはドキュメントはどこかにありますか?
c++ - c++ での文字列への OS 固有の値の割り当て
OSに応じて文字列に値を代入しようとしましたが、コードは以下のとおりです
これにより、「âpathâ はタイプに名前を付けていません」というエラーが発生します。
しかし、このコードは正しく動作します
誰でもこの動作を説明できますか?
c - プリプロセッサ ディレクティブを使用する以外に型の競合を避ける方法はありますか?
私のプロジェクトには2つの異なる展開があります! これらの 2 つの展開では、構造メンバーが異なりますが、構造名は同じです。たとえば、私は以下のモデルを使用しています-
この場合、SATHISH
フラグを有効にすると最初の構造が評価され、フラグが定義されていない場合は 2 番目の構造が評価されます。
#ifdef .... #endif
プリプロセッサ ディレクティブ (またはなど)を使用せずに同じことを行うための他の最良の方法はあります#ifndef .... #endif
か?
どんな提案でも大歓迎です!
c++ - プログラムの main() の前の #ifdef の目的
以下の #ifdef の目的は何ですか? また、プログラムをデバッグするときに (アクティブなソリューション構成 = デバッグ)、プログラムをステップ実行できるのに、アクティブなソリューション構成 = リリース時、またはソリューションとアクティブなソリューション構成 = リリースをビルドするときにできないのはなぜですか?
私は他の誰かのレガシー コードで作業しており、それを削除するだけで正常に動作することはわかっていますが、前のコーダーがこれらのプリプロセッサ ディレクティブを最初にここに配置した理由を理解したいと思います。
java - Eclipse IDE で Java の #define または #ifdef を設定できますか
Java の Eclipse に #ifdef の #define を追加して、特定のターゲット用にビルドしているときにコードを無効または有効にできるようにします。
以前に C++ でこれを使用したことがありますが、Java Eclipse プロジェクトで行う方法があるかどうかはわかりません。
日食で可能かどうか教えてください。