[英]Difference between inline void and void inline in C/C++
我只需要知道 C/C++ 编译器中的inline void
和void inline
之间有什么区别。
There's no semantic difference.没有语义差异。 In C's grammar, inline
is a "function-specifier".在 C 的语法中, inline
是一个“函数说明符”。
If you look at the definition of a declaration :如果您查看声明的定义:
declaration:
declaration-specifiers init-declarator-listopt ;
static_assert-declaration
declaration-specifiers:
storage-class-specifier declaration-specifiersopt
type-specifier declaration-specifiersopt
type-qualifier declaration-specifiersopt
function-specifier declaration-specifiersopt
alignment-specifier declaration-specifiersopt
init-declarator-list:
init-declarator
init-declarator-list , init-declarator
init-declarator:
declarator
declarator = initializer
you'll see that function-specifiers in a declaration (which for functions, is part of definitions too) can be arbitrarily permuted with storage-class specifiers (eg, static
), type-specifiers (eg, int
, long
, signed
, unsigned
), type qualifiers ( const
, volatile
, restrict
) and alignment specifiers ( _Alignas(type_name)
or _Alignas(constant_expression)
).您会看到声明中的函数说明符(对于函数,也是定义的一部分)可以与存储类说明符(例如static
)、类型说明符(例如int
、 long
、 signed
、 unsigned
)、类型限定符( const
、 volatile
、 restrict
)和对齐说明符( _Alignas(type_name)
或_Alignas(constant_expression)
)。
There are no differences, but is suggested to use inline void
.没有区别,但建议使用inline void
。
Note that inline
functions are supported in C++ and C99 though with different semantics.请注意,尽管语义不同,但 C++ 和 C99 支持inline
函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.