2

私はC++を初めて使用し、ほとんどの人が行うように、「ヘッダーファイル」と「ソースファイル」でコードを整理し始めました。

#pragma onceインライン関数を含むすべてのヘッダーファイルで使用しています。しかし、すべてのヘッダーファイルで単純に使用することに反対する理由があるのではないかと思いました。

4

1 に答える 1

6

インライン関数を含むすべてのヘッダーファイルで#pragmaを1回使用しています

これが、 #pragmaを一度も必要としない理由の1つです。同じインライン関数に対して複数の定義を持つことは正常であり、予想されます。また、特にテンプレート関数の場合、複数の変換ユニットに同じヘッダーが含まれている場合は避けられません。リンカは、コンパイラが実際に関数をインライン化していない場合に検出した定義の1つを選択するだけです。同じタイプの複数の定義を回避するには、#pragmaを1回必要とします。

于 2012-04-24T00:00:40.100 に答える