我使用C语言进行工作,Visual Studio 2017-企业版但C头文件存在复杂问题,因为Visual Studio认为每个头文件 都是C++头文件。因此,无论扩展名是.hpp
还是.h
,它都会将其视为C++头文件, ,这会导致问题,因为我使用C99,因此Visual Studio会考虑头文件为C++,因此我无法在头文件中使用C功能。Visual Studio没有区分C头文件和C++头文件
注:当我命名一个源文件.c
时,Visual Studio将其视为一个C文件,而不是C++,这是很好的。所以我需要对标题做同样的事情。 我需要为.c和.hpp for C++做.hh如何?
这个问题也与VS 2010,2013,2015年
编辑::
与突出例如,如果我创建的.c文件 工作室visula类会说的问题有错误,但这将不会显示任何 错误,如果我在.h文件中创建类即使我使用extern“C”
看看这个图片: source.h 现在就来看看这 source.c
一切都取决于您调用头文件的位置。考虑使用'extern“C”'作为C代码。这在你提到的任何版本中都不是问题。它按预期为C和C++单独运行。如果你从.cpp包含.h文件,那么你就错过了对待。 – tilz0R
头文件不是编译单元。 –
标题未编译为C或C++。源文件被编译。如果某些头文件必须包含在c和C++源代码文件中 - 请使用#ifdef __cplusplus –