Visual C ++で作業しているときに、ヘッダーが含まれていない場合でも一部の関数が機能することに日常的に気づきます。たとえば、含まれていないtolower()
場合でも機能しctype.h
ます。
この動作は、オンラインプログラミングコンテストに参加するときに問題を引き起こします。プログラムは、コンピューターで実行すると正常に動作し、ダンディになりますが、送信するとfunction not defined
エラーが発生します。この動作を停止する方法はありますか?
Visual C ++で作業しているときに、ヘッダーが含まれていない場合でも一部の関数が機能することに日常的に気づきます。たとえば、含まれていないtolower()
場合でも機能しctype.h
ます。
この動作は、オンラインプログラミングコンテストに参加するときに問題を引き起こします。プログラムは、コンピューターで実行すると正常に動作し、ダンディになりますが、送信するとfunction not defined
エラーが発生します。この動作を停止する方法はありますか?
考えられる説明:
あなたの宣言はtolower()
実際に含まれています。次のいずれかの方法でそうなる可能性があります。
<cctype>
または<ctype.h>
、含めたヘッダーの1つ(標準ヘッダーも含む)に含まれています。標準では、標準ヘッダーに他の標準ヘッダーを含めることを禁止していません
含めたヘッダーの1つに、その機能の宣言があります。たとえば、コードのどこかに含める<algorithm>
ことができます。int tolower(int);
この動作を禁止することはできません。あなたができることは、関数がどこで定義/宣言されなければならないかを学び、他のヘッダーによるそのヘッダーの包含に決して依存しないことです。tolower
宣言されている場所がわかっているので、<cctype>
この関数を使用するたびにインクルードしてください。