即使没有包含标题,函数也可以工作 - Visual Studio

时间:2013-03-27 12:53:13

标签: visual-studio

我在使用Visual C ++时经常注意到,即使没有包含标题,某些函数也能正常工作。例如,即使未包含tolower()ctype.h也会有效。

当我参加在线编程比赛时,这种行为会给我带来麻烦,当我在计算机上运行该程序时,该程序运行良好且花花公子,但在提交时,会出现function not defined错误。有没有办法阻止这种行为?

2 个答案:

答案 0 :(得分:0)

可能的解释:

  • 您的警告级别已向右调低。
  • 您正在使用包含正确文件的预编译标头。

答案 1 :(得分:0)

事实上,您tolower()的声明已包含在内。它可以通过以下方式之一:

  • <cctype><ctype.h>包含在您包含的其中一个标头(甚至标准标头)中。该标准不禁止标准标题包含其他标准标题

  • 您所包含的其中一个标题包含该功能的声明。例如,<algorithm>可能在其代码中的某处int tolower(int);

你不能禁止这种行为。你可以做的是了解函数必须定义/声明的位置,而不是依赖于其他标题包含该标题。您知道tolower的声明位置,每次使用此函数时都包含<cctype>