C ++编译器不喜欢“使用INLINE = extern内联”

不好

关于inline如何使用和如何正确实现所需的意图,这里有很多信息,例如,这里(我目前用作参考)是C语言中的内联函数

当我尝试实现页面中指定的内容时,出现以下错误:

using INLINE = extern inline;

甚至只是

using INLINE = extern;

编译器说“ extern之前的预期类型说明符”

我想知道为什么我可以使用using这种方式?

是因为using实际上仅保留用于类型和替换吗?

发表答案

非常感谢!我完全错过了我正在阅读C参考的事实。这是个好消息,因为似乎没有一种真正好方法来处理我正在阅读的内容,但与现在在C ++ 11中所做的相比,它可能已经过时了。

讲故事的人-Unslander Monica

是因为使用实际上仅保留用于类型和替换吗?

我不知道您所说的替换是什么意思,但是对类型的保留是可以的。别名声明用于声明类型的新名称一对说明符不构成类型。您甚至不能通过在表面上添加类型名称来使其工作,因为externinline限定符仅适用于对象和函数标识符,而不适用于它们的关联类型。

本文使用宏(#define),因为令牌替换是创建用户想要的说明符的唯一方法。

同样值得注意的是,在C ++中inlineextern inline它们是同一件事。它仅是C语言(与C ++不同的语言,以及链接文章的主题)inline并不意味着链接,需要您指定extern

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Visual Studio编译器分析内联的C ++函数

C ++编译器如何找到extern变量?

为什么C ++编译器允许将extern关键字与定义结合使用?

BCC中的内联汇编(Bruce的C编译器)-如何使用C变量?

C51 C编译器内联汇编到SDCC内联汇编

使用extern引用非静态内联函数的实例化

您可以使用 C 内联汇编来对齐指令吗?(没有编译器优化)

兼容c ++ 11的编译器是否总是忽略内联提示?

有没有办法检查编译器是否内联C ++ lambda函数?

GNU C ++编译器((GCC)5.2.0)本身是否擅长“内联”?

为什么C#编译器不内联MSIL代码?

编译Perl编译器(B :: C)的输出后,我得到“ EXTERN.h:没有这样的文件或目录”

在C ++中使用Extern变量进行编译

extern "C" 是将 C 代码转换为 C++ 代码,还是仅允许编译器将 C 代码编译为 C++ 代码?

编译器不喜欢INVALID_HANDLE_VALUE

要使内联函数定义在外部链接,是否需要使用“ extern”?

Ideone使用的C ++编译器

使用extern“ C”从C ++调用C代码

在C中使用extern变量

何时在C ++中使用extern

extern“ C”-何时“准确”使用?

如何使编译器更喜欢C ++中的const方法重载?

C / C ++编译器优化:我应该更喜欢创建新变量,重用现有变量还是完全避免使用变量?

在C和C ++中不使用extern的不同编译结果

编译器设计中的内联汇编

编译时全局应用extern C

在某些C ++编译器上使用限制限定符的编译器错误

Android Studio内联编译器显示红色错误,但是使用gradle编译可以正常工作

我可以使用C / C ++编译器吗?