C ++头文件中的大小写敏感性

时间:2012-02-26 02:44:07

标签: c++ windows header-files case-sensitive xinput

对于C ++,我是一个完整的菜鸟,我一直在试图通过Moai试图添加对Xbox 360游戏手柄的支持XInput。当我包含XInput的标题时,有两个选项:

  1. XINPUT XInput
    1. XINPUT Xinput
    2. 此外,为了使用XInput,我需要包含windows.h。我见过的所有示例都使用以下语法:

      #include <windows.h>
      

      但Visual C ++ Express 2010中的自动完成插入

      #include <Windows.h>
      

      Windows.h

      在XInput / Xinput的情况下,似乎区分大小写很重要,但在Windows.h的情况下似乎并不重要。

      包含头文件时区分大小写是否重要?这有什么逻辑吗?

      XInput的区别仅在于有一个名为XInput的标题和另一个名为Xinput的标题吗?

4 个答案:

答案 0 :(得分:4)

只有底层文件系统区分大小写才有意义。 Windows文件系统不区分大小写,但Linux等操作系统的文件系统是。尝试使用真实文件的确切实际名称,以确保在将代码从一个操作系统移植到另一个操作系统时,代码可以正常工作。

答案 1 :(得分:4)

标头名称和包含指令中的区分大小写是实现定义的。通常情况下,您所构建的平台是否区分大小写。

我必须进行测试才能确定,但​​我怀疑如果你键入任何种类的'xinput.h',它会找到首先出现在标题搜索路径中的那个,即使后来发生的文件也是如此在案例方面,在搜索路径中是更好的匹配。从不熟悉这些问题的开发人员的角度来看,这将是非常不直观的,因为这意味着您可以使用其中一个自动完成,然后VS将包含 选择的文件。< / p>

VS也可能比这更聪明,并且会搜索最佳案例匹配。

答案 2 :(得分:2)

在Windows上,文件名不区分大小写,并且扩展到#include。任何情况都可以。

在某些平台(例如Linux)上,文件名 区分大小写,因此您需要匹配实际的文件名。

答案 3 :(得分:1)

Windows并不像其他人所说的那样具有案例意义。但那不是你的问题。您的问题是Visual Studio中的包含文件设置。编译器将按照它们的设置顺序查找标准头文件(使用<>语法的头文件包含)。启动Tools->Options,然后查找Projects and Solutions->VC++ directories并查看Include Files的序列。