C/C++中的内联函数是一种使它们成为线程安全的方法吗?

前端之家收集整理的这篇文章主要介绍了C/C++中的内联函数是一种使它们成为线程安全的方法吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我做了以下推理,请告诉我它的错误(或正确):

“如果内联函数重复调用函数所在位置的代码,则调用它的每个函数都会复制静态和局部变量,如果只有一个运行该函数的线程同时调用内联函数,那么代码是线程安全的“.

“而且,如果它对静态和全局变量没有帮助,那么代码是否会创建临时变量呢?”

谢谢

解决方法

当您将函数声明为内联时,它只是对编译器的提示.静态变量在语言中有明确的定义.如果编译器内联函数,则仍然有义务保持函数的所有实例之间共享的静态变量.因此,它们将保持全球性并且必须在MT环境中受到保护.

对于局部变量,除非它们在函数之外使用,否则无论是否内联函数,它们都是线程安全的.

猜你在找的C&C++相关文章