如何在C ++中具有全局变量

约翰

我正在重写某人的代码,该代码具有一个全局变量,该变量在初始化期间(在Java将其回调到C中之后)很有用。看来他们已经在几个地方用extern前缀声明了此变量,一次没有声明。我真的不明白为什么g_我宁愿调用它static并只声明一次它对全局变量(前缀执行此操作

static在这种情况下,我能够做到这一点还是对线程安全性有负面含义?我的代码大部分是C ++,但是有些extern 'C'东西像Java调用的那些函数一样。

目前,我没有使用externstatic但我倾向于认为这就是为什么我会出现链接错误。

韦里奇

static不能防止在多个编译单元的编译期间重复变量。当您链接这些编译单元时,它们最终将看到同一变量的不同“实例”。换句话说,每个人都会看到自己的副本。

的作用extern恰恰是避免这种重复。static在实现文件(.c)中声明了全局(非)变量,extern在给定的头文件(.h声明了该变量,该变量将由依赖它的每个源文件包括在内。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当函数具有同义局部变量时,如何在函数中获取全局变量?

来自分类Dev

如何在C中访问具有相同名称的局部变量和全局变量

来自分类Dev

C#中的静态全局变量具有文件作用域吗?

来自分类Dev

C#中存在具有相同名称的局部变量时,如何在函数中更改全局变量的值

来自分类Dev

如何在python中实现C / C ++全局变量?

来自分类Dev

当存在具有相同名称的局部变量时,如何在C中使用全局变量?

来自分类Dev

如何在C中声明全局变量?

来自分类Dev

如何在C#中创建全局变量?

来自分类Dev

遍历C ++中的所有Lua全局变量

来自分类Dev

在没有全局变量的C ++函数中创建数组

来自分类Dev

遍历C ++中的所有Lua全局变量

来自分类Dev

如何消除具有相同名称的局部静态变量和全局变量的歧义

来自分类Dev

如何在Laravel 5.2中具有全局$ user变量?

来自分类Dev

如何从C#中的C ++ dll从带有全局变量的函数中获取返回数组?

来自分类Dev

如何在Symfony 2中为所有控制器设置全局变量?

来自分类Dev

如何在所有包中访问全局变量

来自分类Dev

如何在Javascript中添加所有测试使用的全局变量?

来自分类Dev

如何在JavaScript中获取所有pyodide全局变量

来自分类Dev

如何在JavaScript中获取所有pyodide全局变量

来自分类Dev

如何在Symfony 2中为所有控制器设置全局变量?

来自分类Dev

如何在Python中的所有类方法中使用全局变量?

来自分类Dev

如何在 swift 中理解设置为私有的全局变量?

来自分类Dev

为什么局部变量不具有默认类型而全局变量具有C?

来自分类Dev

具有链接列表指针作为全局变量的多进程c ++(11)

来自分类Dev

不同类具有相同名称的C ++全局变量

来自分类Dev

具有链接列表指针作为全局变量的多进程c ++(11)

来自分类Dev

如何访问模板中的全局变量?

来自分类Dev

无法在C中修改全局变量

来自分类Dev

多个文件中的C ++全局变量

Related 相关文章

  1. 1

    当函数具有同义局部变量时,如何在函数中获取全局变量?

  2. 2

    如何在C中访问具有相同名称的局部变量和全局变量

  3. 3

    C#中的静态全局变量具有文件作用域吗?

  4. 4

    C#中存在具有相同名称的局部变量时,如何在函数中更改全局变量的值

  5. 5

    如何在python中实现C / C ++全局变量?

  6. 6

    当存在具有相同名称的局部变量时,如何在C中使用全局变量?

  7. 7

    如何在C中声明全局变量?

  8. 8

    如何在C#中创建全局变量?

  9. 9

    遍历C ++中的所有Lua全局变量

  10. 10

    在没有全局变量的C ++函数中创建数组

  11. 11

    遍历C ++中的所有Lua全局变量

  12. 12

    如何消除具有相同名称的局部静态变量和全局变量的歧义

  13. 13

    如何在Laravel 5.2中具有全局$ user变量?

  14. 14

    如何从C#中的C ++ dll从带有全局变量的函数中获取返回数组?

  15. 15

    如何在Symfony 2中为所有控制器设置全局变量?

  16. 16

    如何在所有包中访问全局变量

  17. 17

    如何在Javascript中添加所有测试使用的全局变量?

  18. 18

    如何在JavaScript中获取所有pyodide全局变量

  19. 19

    如何在JavaScript中获取所有pyodide全局变量

  20. 20

    如何在Symfony 2中为所有控制器设置全局变量?

  21. 21

    如何在Python中的所有类方法中使用全局变量?

  22. 22

    如何在 swift 中理解设置为私有的全局变量?

  23. 23

    为什么局部变量不具有默认类型而全局变量具有C?

  24. 24

    具有链接列表指针作为全局变量的多进程c ++(11)

  25. 25

    不同类具有相同名称的C ++全局变量

  26. 26

    具有链接列表指针作为全局变量的多进程c ++(11)

  27. 27

    如何访问模板中的全局变量?

  28. 28

    无法在C中修改全局变量

  29. 29

    多个文件中的C ++全局变量

热门标签

归档