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

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

c - CおよびDelphiでの条件付きコンパイル

次のパターンはCコードで一般的です。

このパターンはDelphiコードでも可能です。

しかし、それは一般的ではありません-私はそれをまったく見たことがありません。IFNDEFDelphiコードが条件付き定義を必要とする場合、チェックなしで定義するだけです。

なぜそうなのか?CとDelphiの条件付きコンパイルの違いは何ですかifndef。前者にはチェックが必要で、後者にはチェックが必要ありません。

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

c - プリプロセッサ#ifndef

私が持っていると仮定するとa.h、次のものが含まれます。

私も持っていると仮定b.hします<stdbool.h>。プリプロセッサ定義ステートメントが含まれている場合とa.h含まれていない場合。含まれていないものだけが含まれますか?では、インクルードの場合、インクルードとインクルードは再インクルードされますか、それともこれらのプリプロセッサ定義関数は、このクラス全体が再定義されているかどうかを確認するためにのみ使用され、クラス内の特定の関数は使用されませんか?#ifndefb.ha.hb.hb.ha.ha.hstddef.hstein.hstdbool.h

編集:

b.hまた、-を含む別のヘッダーファイルが含まれていると仮定します。これstdbool.hにより、そのクラスとの両方が含まれます。それはエラーを引き起こしますか?b.hstdbool.ha.h

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

c - makefile ビルドで「#ifndef/#endif」ブロックを有効にするにはどうすればよいですか?

MuPDF でデバッグ オプションを有効にしようとしています。何らかの理由で、私が使用したいコードが使用され#ifndef NDEBUG、グレー表示されています。#endifライブラリ全体を検索しましたが、どこにも定義された NDEBUG の痕跡は見つかりませんでした。ヘッダーを追加することでこれを回避できました#undef NDEBUGが、より非侵入的な方法があるかどうかを知りたいです。

SO、メイクファイルから「#ifndef/#endif」ブロックを有効にできますか?

また、なぜ#ifndefコードをグレーアウトするのですか? あるはずじゃない#ifdef NDEBUG

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

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++コンパイラを使用しており、コンパイルに使用する行は次のとおりです。

これが私が得るすべてのエラーです:(警告、テキストの壁)


さらに明確にする必要がある場合は編集しますが、そうなるとは思いません。

どんな助けでも大歓迎です。

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

c++ - #ifndef が異なるファイルでどのように機能するか

そのため、main.cpp で宣言したライブラリを header.h に含めようとしていました。

これは main.cpp をチェックして、対応する変数 HANOI_H を持つ 3 つのライブラリと名前空間が存在するかどうかを確認しますか?

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

ios - ifndef、定数の定義と直接代入

定数を定義しながら、以下のメソッドの違いを考えています:

方法 1: インクルード ガードを使用して、すべての定数を定義するヘッダー ファイルを作成します。

次に、定数を関数に割り当てます。

Method2: 単に定数を定義するだけ

次に、定数を関数に割り当てます。

Method3: 定数を定義せず、関数に値を割り当てるだけです:

上記の長所と短所はありますか?

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

bash - ifdef および ifndef ディレクティブの使用

を使用して変数が定義されているかどうかを確認しようとしていますが、実行時にエラーが発生しifndef/ifdef続けます。not found私は を使用しGNU Make 3.81ています。ここに私が持っているもののスニペットがあります:

そして正確なエラー:

編集

Barmar のコメントを考慮すると、結論は次のようになります。

define の内容はシェル コマンド ラインであり、make ディレクティブではありません。定義ブロック内のコマンド内で改行するには、改行をエスケープする必要があります -- \; また、ワンライナー コマンドに対応する各ブロックは、それぞれが異なるシェル実行で個別に実行されます。つまり、次のワンライナー ブロックの変数値にアクセスすることを意図している場合、ローカル変数の定義は機能しません。

素敵な作業をしてくれたトリプルに感謝します。

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

c++ - エラー: #if[n]def には識別子が必要です

もともと私のコードは次のとおりでした:

しかし、エラーが発生しまし#if[n]def expected an identifierた。だから私はそれをいじって、私のエラーが2DO_H. コードを次のように変更したとき:

2DO_Hに変更したため、上記の場合は機能しましたDO_H。識別子の前に余分な数字があるとエラーになるのはなぜですか?

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

c++ - 複数のインクルード エラー

私は C++ を初めて使用し、作成した 2 つの .h ファイルをインクルードしようとしています。インクルードは相互にアクセスするため、順序に応じて、失敗または失敗に含めます。このため、考えられる唯一の問題は、「$ g++ main.cpp foo1.cpp foo2.cpp」をコンパイルするときに、読み取りに失敗することであることがわかっています。#IFnDef を使用したのは、別の投稿で問題が解決したことを確認したためですが、何も変わりませんでした。何か案は?