gpt4 book ai didi

c - C 中的全局变量及其在文件之间的作用域

转载 作者:行者123 更新时间:2023-11-30 17:06:15 25 4
gpt4 key购买 nike

我正在 Minix 中编写信号量的实现,但不确定一件事。

如果调用 header 中包含的函数并且该函数使用全局数组,则该数组是:

  1. 对于调用该函数的所有进程都一样吗?
  2. 调用该函数的每个进程都不同?
  3. 该函数的每次调用都不同?

最佳答案

我不确定process的概念C99标准中提到。让我们假设您的 C 实现在 Linux 上,或者至少是 POSIX 上。

那么,每个进程都有自己的virtual address space (它被 fork(2) 懒惰地复制,被 mmap(2) & munmap & mprotect(2) 等更改...,被 execve(2) 替换......)并且全局变量是坐在该地址空间中。

因此,您的选择 2 是正确的(至少在 Linux 上,也可能在 Minix 上,因为它兼容 POSIX 并且类似于 Unix...)。

顺便说一句,它与静态数组相同。

另请参阅给出的引用文献和链接 here .

关于c - C 中的全局变量及其在文件之间的作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34839905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com