我正在尝试使用VS Code和Microsoft的C/C++扩展来解决以下问题。
上述扩展在源代码中的每个函数/对象定义之上添加一个引用计数。到目前为止,这是一个有用的功能,但对我来说,我认为它并没有像预期的那样工作。
在我的例子中,我开始实现一个线程安全的链表来练习(请忽略代码,这不是本主题的主题)。尽管我导入了头文件并在main-function的main.cpp文件中实例化了该类的一个对象,但整个类都是灰色的。而且,整个main函数都是灰色的,因为没有找到对main-function的引用。这对我来说毫无意义,为什么我要在代码中引用main-function呢?它是程序的入口点,不应该在我的项目源代码afaik中引用。
当我禁用C/C++扩展时,引用计数消失了,源代码再次突出显示。但我真的希望保留引用计数,只去掉灰显的代码(或者让它正常工作,这样我在代码中引用的main函数和定义就不会灰显)。
此外,通过禁用扩展,代码自动完成功能也将消失。所以这不是一个好的交易。我花了几个小时阅读配置并在网络上搜索解决方案,但我找不到任何有用的东西。我在C/C++扩展的设置中发现了一个选项"Dim inactive regions“,这是我发现的唯一一个与代码变灰有关的东西。但这并没有解决我的问题。
提前感谢您的阅读/尝试帮助!
灰色代码和引用计数的示例:

main函数灰显,因为对main的引用为0:

Dim inactive code选项:

更新:事实证明,引用计数器不仅在我禁用C/C++扩展时消失,而且在我禁用TypeLens扩展时也消失。这并没有解决我的问题,但至少我可以通过禁用TypeLens来摆脱灰色代码,并且仍然使用C++扩展提供的自动完成功能。
发布于 2020-11-24 01:37:27
正如我在更新的问题中提到的,这个问题与C/C++扩展无关。实际上,正是TypeLens扩展导致了这里的问题。
我找到的最好的解决方案是将TypeLens配置为不灰显未引用的代码。这样,我就可以保留C/C++扩展中的引用计数器和代码完成功能,但又可以防止源代码被TypeLens变灰。
为此,您必须将#999中的Typelens:Unusedcolor值设置为nothing (只需删除该值)。
发布于 2020-11-23 23:29:07
也许你应该用你的main函数声明
int main(void)或
int main(int argc, char * argv [])https://stackoverflow.com/questions/64971220
复制相似问题