0

これは初歩的な質問です。

基本的に、条件付きコンパイルを導入するために必要なファイルがあり.hます。との両方に10個の関数が含まれています。そのうちの2つだけに対して条件付きコンパイルを行う必要があります。したがって、ファイル内の2 をラップするつもりでした.cpp#ifdef.h.cpp.h#ifdef

質問 1: C++ ファイルでも関数の実装を再度ラップする必要がありますか? 違うと思いますよね?確かめたい。

質問 2: これら 10 個の関数の関数ポインターの配列があります。#ifdef2 つの関数についても、この配列内でラップする必要がありますか?

4

1 に答える 1

1

1: クラス関数の場合、はい。それ以外の場合は、それらをifdefしなくても大丈夫かもしれませんが、私は個人的にそうします。誰かが別の翻訳単位で関数を extern として宣言すると、その関数にアクセスできるようになるからです。

2: すべてのクライアントが 2 つの異なるサイズの配列を処理することになるため、私はそれを行いません。これらの 2 つのポインターを NULL に設定するだけで、呼び出し側でそのケースを処理します。

于 2014-01-24T02:24:53.883 に答える