問題タブ [ifndef]
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 - CおよびDelphiでの条件付きコンパイル
次のパターンはCコードで一般的です。
このパターンはDelphiコードでも可能です。
しかし、それは一般的ではありません-私はそれをまったく見たことがありません。IFNDEF
Delphiコードが条件付き定義を必要とする場合、チェックなしで定義するだけです。
なぜそうなのか?CとDelphiの条件付きコンパイルの違いは何ですかifndef
。前者にはチェックが必要で、後者にはチェックが必要ありません。
c - プリプロセッサ#ifndef
私が持っていると仮定するとa.h
、次のものが含まれます。
私も持っていると仮定b.h
します<stdbool.h>
。プリプロセッサ定義ステートメントが含まれている場合とa.h
含まれていない場合。含まれていないものだけが含まれますか?では、インクルードの場合、インクルードとインクルードは再インクルードされますか、それともこれらのプリプロセッサ定義関数は、このクラス全体が再定義されているかどうかを確認するためにのみ使用され、クラス内の特定の関数は使用されませんか?#ifndef
b.h
a.h
b.h
b.h
a.h
a.h
stddef.h
stein.h
stdbool.h
編集:
b.h
また、-を含む別のヘッダーファイルが含まれていると仮定します。これstdbool.h
により、そのクラスとの両方が含まれます。それはエラーを引き起こしますか?b.h
stdbool.h
a.h
c - makefile ビルドで「#ifndef/#endif」ブロックを有効にするにはどうすればよいですか?
MuPDF でデバッグ オプションを有効にしようとしています。何らかの理由で、私が使用したいコードが使用され#ifndef NDEBUG
、グレー表示されています。#endif
ライブラリ全体を検索しましたが、どこにも定義された NDEBUG の痕跡は見つかりませんでした。ヘッダーを追加することでこれを回避できました#undef NDEBUG
が、より非侵入的な方法があるかどうかを知りたいです。
SO、メイクファイルから「#ifndef/#endif」ブロックを有効にできますか?
また、なぜ#ifndef
コードをグレーアウトするのですか? あるはずじゃない#ifdef NDEBUG
?
c++ - #ifndefおよび#includeステートメントを使用しようとしているC++
さて、私はHTML / Javascript / PHPの専門家ですが、C++を学ぼうとしています。私はまだ初心者で、エラーのあるC++プログラミングプロジェクトがあります。
int main()を含むファイルは'football.cpp'であり、使用する必要のある3つのクラス(Game、Team、およびDate)の.hファイルと.cppファイルがあります。チームの各インスタンスにはゲームのベクトルが含まれ、各ゲームには日付が含まれます。Dateには、他のクラスのインスタンスは含まれていません。
コンパイル時にエラーが発生しないように、ファイルの先頭で#includeステートメントと#ifndefステートメントを使用する方法を見つけようとしていますが、機能する組み合わせが見つかりません。他にバグがあるかどうかはわかりません。これが私の現在の#includeセクションであり、他のライブラリは数えていません。
サッカー.cpp
team.h
team.cpp
game.h
game.cpp
date.cpp
私はCygwing++コンパイラを使用しており、コンパイルに使用する行は次のとおりです。
これが私が得るすべてのエラーです:(警告、テキストの壁)
さらに明確にする必要がある場合は編集しますが、そうなるとは思いません。
どんな助けでも大歓迎です。
c++ - #ifndef が異なるファイルでどのように機能するか
そのため、main.cpp で宣言したライブラリを header.h に含めようとしていました。
これは main.cpp をチェックして、対応する変数 HANOI_H を持つ 3 つのライブラリと名前空間が存在するかどうかを確認しますか?
ios - ifndef、定数の定義と直接代入
定数を定義しながら、以下のメソッドの違いを考えています:
方法 1: インクルード ガードを使用して、すべての定数を定義するヘッダー ファイルを作成します。
次に、定数を関数に割り当てます。
Method2: 単に定数を定義するだけ
次に、定数を関数に割り当てます。
Method3: 定数を定義せず、関数に値を割り当てるだけです:
上記の長所と短所はありますか?
bash - ifdef および ifndef ディレクティブの使用
を使用して変数が定義されているかどうかを確認しようとしていますが、実行時にエラーが発生しifndef/ifdef
続けます。not found
私は を使用しGNU Make 3.81
ています。ここに私が持っているもののスニペットがあります:
そして正確なエラー:
編集:
Barmar のコメントを考慮すると、結論は次のようになります。
define の内容はシェル コマンド ラインであり、make ディレクティブではありません。定義ブロック内のコマンド内で改行するには、改行をエスケープする必要があります -- \; また、ワンライナー コマンドに対応する各ブロックは、それぞれが異なるシェル実行で個別に実行されます。つまり、次のワンライナー ブロックの変数値にアクセスすることを意図している場合、ローカル変数の定義は機能しません。
素敵な作業をしてくれたトリプルに感謝します。
c++ - エラー: #if[n]def には識別子が必要です
もともと私のコードは次のとおりでした:
しかし、エラーが発生しまし#if[n]def expected an identifier
た。だから私はそれをいじって、私のエラーが2DO_H
. コードを次のように変更したとき:
2DO_H
に変更したため、上記の場合は機能しましたDO_H
。識別子の前に余分な数字があるとエラーになるのはなぜですか?
c++ - 複数のインクルード エラー
私は C++ を初めて使用し、作成した 2 つの .h ファイルをインクルードしようとしています。インクルードは相互にアクセスするため、順序に応じて、失敗または失敗に含めます。このため、考えられる唯一の問題は、「$ g++ main.cpp foo1.cpp foo2.cpp」をコンパイルするときに、読み取りに失敗することであることがわかっています。#IFnDef を使用したのは、別の投稿で問題が解決したことを確認したためですが、何も変わりませんでした。何か案は?