我在使用Visual C ++时经常注意到,即使没有包含标题,某些函数也能正常工作。例如,即使未包含tolower()
,ctype.h
也会有效。
当我参加在线编程比赛时,这种行为会给我带来麻烦,当我在计算机上运行该程序时,该程序运行良好且花花公子,但在提交时,会出现function not defined
错误。有没有办法阻止这种行为?
答案 0 :(得分:0)
可能的解释:
答案 1 :(得分:0)
事实上,您tolower()
的声明已包含在内。它可以通过以下方式之一:
<cctype>
或<ctype.h>
包含在您包含的其中一个标头(甚至标准标头)中。该标准不禁止标准标题包含其他标准标题
您所包含的其中一个标题包含该功能的声明。例如,<algorithm>
可能在其代码中的某处int tolower(int);
。
你不能禁止这种行为。你可以做的是了解函数必须定义/声明的位置,而不是依赖于其他标题包含该标题。您知道tolower
的声明位置,每次使用此函数时都包含<cctype>
。