有很多关于 inline
的使用以及如何正确执行此操作以达到所需目的的信息,例如此处(我目前将其用作引用)Inline Functions in C .
当我尝试实现页面中指定的内容时,出现编译器错误
using INLINE = extern inline;
甚至只是
using INLINE = extern;
编译器说“在 extern 之前需要类型说明符”
我想知道的是为什么我可以这样使用using
?
是因为 using
真的只是为类型和替换保留的吗?
发布答案
非常感谢!我完全错过了我正在阅读 C 引用资料这一事实。这是个好消息,因为从我读到的内容来看,似乎没有真正好的方法来处理事情,但可能就是这样,因为与他们现在在 C++11 中所做的相比,它已经过时了.
最佳答案
Is it because using is really just reserved for types and substitutions?
我不知道您所说的替换是什么意思,但是对于类型的保留是肯定的。别名声明用于为类型 声明新名称。一对说明符不构成类型。您甚至无法通过在其中表面添加类型名称来使其工作,因为 extern
和 inline
说明符仅适用于对象和函数标识符,而不适用于它们的关联类型。
这篇文章使用了一个宏 (#define
),因为标记替换是创建用户定义说明符的唯一方法,就像您想要的那样。
还值得注意的是,在 C++ 中,inline
和 extern inline
是同一回事。只有在 C(与 C++ 不同的语言,以及链接文章的主题)中,inline
并不意味着链接,需要您指定 extern
。
关于C++ 编译器不喜欢 "using INLINE = extern inline",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50673954/