相关疑难解决方法(0)

如何使用extern在源文件之间共享变量?

我知道C中的全局变量有时会有extern关键字.什么是extern变量?宣言是什么样的?它的范围是什么?

这与跨源文件共享变量有关,但这是如何工作的?我在哪里用extern

c global-variables extern

942
推荐指数
13
解决办法
67万
查看次数

C中与static关键字的内部链接

我知道static在C中是一个重载的关键字.在这里,我只关心它作为一个关键字用来强制内部链接.

如果在.c文件中声明了全局变量,则使用static和不使用之间有什么区别static?无论哪种方式,没有其他.c文件可以访问变量,因此该变量基本上是文件的"私有",有或没有static关键字.

例如,如果我有一个文件foo.c,并且我声明了一个全局变量:

int x = 5;

该变量x仅对内部代码可用foo.c(除非我在一些带有extern关键字的共享头文件中声明它).但是如果我没有在头文件中声明它,那么如果我输入的话会有什么不同:

static int x = 5.

无论哪种方式,它似乎x都有内部联系.所以我static对这方面的目的感到困惑.

c static linkage

11
推荐指数
2
解决办法
4793
查看次数

C/C++ 中未初始化的变量会怎样?

摘自李普曼的《C++ Primer》,

当我们定义一个变量时,我们应该给它一个初始值,除非我们确定在该变量用于任何其他目的之前该初始值将被覆盖。如果我们不能保证变量在被读取之前会被重置,我们应该初始化它。

  1. 如果在操作中使用未初始化的变量会发生什么?它会崩溃/代码会无法编译吗?

    我在互联网上搜索了相同的答案,但有不同的“说法”。因此出现以下问题,

  2. C 和 C++ 标准在处理未初始化变量的方式上是否有所不同?

  3. 对于类似的疑问,如何以及在哪里可以找到“官方”答案?对于业余爱好者来说查找 C 和 C++ 标准实用吗?

c c++ initialization

1
推荐指数
1
解决办法
1535
查看次数

静态变量概念“C”

在我阅读了静态变量之后,有些事情让我感到困惑。我们可以说关键字 static 的作用是将变量的生命周期延长到程序的生命周期,因为变量的生命周期就是它存在的时间段。

我的问题是:

  1. 里面到底发生了什么?
  2. 内存是专门为这个变量分配的,还是一种指针?

c

0
推荐指数
1
解决办法
157
查看次数

标签 统计

c ×4

c++ ×1

extern ×1

global-variables ×1

initialization ×1

linkage ×1

static ×1