简体   繁体   English

C/C++中inline void和void inline的区别

[英]Difference between inline void and void inline in C/C++

我只需要知道 C/C++ 编译器中的inline voidvoid 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 )、类型说明符(例如intlongsignedunsigned )、类型限定符( constvolatilerestrict )和对齐说明符( _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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM