c - 在多个任务访问的函数中保留非静态变量值

标签 c multithreading task

我定义了一个函数:

int32_t function(const bool inDebugPattern)
{
  char tempBuff[256]; memset(tempBuff, 0, sizeof tempBuff);

  /* use tempBuff[] */
}

它被多个任务调用,tempBuff[] 的内存分配对于这个函数的每次调用是分开的(唯一的)还是会被共享并且可能被来自的并发调用破坏其他任务?

最佳答案

因为 tempBuff 是一个局部变量,它对于每个函数调用都是唯一的

看看C Scope rules

关于c - 在多个任务访问的函数中保留非静态变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52444049/

相关文章:

c - 不同的进程是否有单独的共享静态变量副本或公共(public)副本?

c++ - 在 sfml 中不工作线程

c# - 如何捕获线程中发生的 Asp.net 核心中的异常

c# - 任务工厂和线程本地存储

android - Gradle 任务 assemble+ FlavorName + Release not found

c - nanosleep(),usleep()中产生CPU所需的最短时间量

c - 伪终端段错误

c++ - 在 Linux 上使用 CUDA 支持编译 OpenCv

java - 许多作家一个读者没有并发

multithreading - Haskell 轻量级线程开销和在多核上的使用