C 标头可以称为vector.h或matrix.h

Can C++ Headers be called vector.h or matrix.h?

本文关键字:vector matrix      更新时间:2023-10-16

我在C 项目中包含问题。我包括了Math.h,但是我的vector.h和我的matrix.h头文件存在奇怪的问题。我可以允许调用这些文件vector.h and matrix.h?

两个标头不能具有相同的名称。

以同一名称暗示完整的路径名,所以

#inlcude "testClass.h"
#include "heders/testClass.h" // OK, distinguishable

Visual Studio可防止您添加一个项目中已经存在的名称的标头。

您还应该检查您的标题是否实际上包含在项目中(或通过MakeFile,Build System等)。快速检查是在该标头中导致句法错误,看看它是否破坏了构建

因此,要回到您的问题,您是否已经有名为vector.h and Matrix.h的标题?因为那将是唯一阻止您命名这样的新标题的事情。请记住,#include< ...>要求将其文件夹设置为包含(外部)目录,因此将其限定到该路径

在理论上我不知道任何禁止这样做的事情。

我会考虑vector.h足够接近<vector>,这将是一个糟糕的想法。

我也不对matrix.h感到兴奋,但至少不是一个很差的选择。

当然,对于您写过的任何标题(而不是您使用的工具提供的标题),您想将名称包装在引号而不是角度括号中。

<</p>

基本原理为什么C 选择了没有后缀的不寻常的<vector>格式是因为意图是与现有的C代码保持兼容,这很可能具有"vector.h"。因此,答案是YES, by Design