我是一名C新人,当我在一个需要它的项目上工作时,试图并行学习这门语言.我使用一个相当受欢迎和稳定的开源库来做很多繁重的工作.通过阅读库的源代码,教程和代码示例,我注意到它们在声明类型时总是使用完全限定的名称,这通常会产生非常长且冗长的行,并且有很多::’s.这被认为是C的最佳实践吗?有没有不同的方法来处理这个?
解决方法
他们可能比发现尝试示例代码并发现它不起作用的人回答很多问题更容易,因为他们没有“使用”所涉及的命名空间.
实践各不相同 – 如果您正在处理具有大量不同库和名称冲突的大型项目,您可能希望一致地主动使用更多命名空间限定符,以便在添加新代码时不必再使旧代码更旧明确它试图使用什么.
在风格上,有些人更喜欢确切地知道被引用的内容可能需要挖掘或遵循IDE“转到声明”功能(如果可用),而其他人喜欢简洁并且仅在“特殊”引用上查看更完整的命名空间限定到尚未包含的名称空间 – 更具上下文视角.
避免使用“使用命名空间xxx”也是正常的.在头文件中,因为包含该头的客户端代码将无法将其关闭,并且该命名空间的内容将永久地转储到其默认的“搜索空间”中.所以,如果你在标题中查看代码,这是他们可能更明确的一个原因.与此相反,您可以在诸如函数体之类的范围内使用“使用命名空间” – 即使在标题中 – 也不会影响其他代码.在实现文件中使用命名空间更为正常,您希望它是翻译单元中的最终文件,编译到您将链接到最终可执行文件的库或对象,或者可能是自己创建的翻译单元可执行文件.