问题标签 [storage-class-specifier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3062 浏览

c - 此声明没有存储或类型说明符

我有这个功能:

我在其中声明了一些变量,例如:

问题是当我试图定义或使用这些变量时——例如:

我收到两个错误:

  1. 关于num_models

    /li>
  2. gmm_ctxt

    /li>

我知道局部变量默认是自动存储类,而且我已经指定了变量的类型;为什么我会收到这种类型的错误?

函数调用来自main()另一个源文件。

我知道我正在监督一些事情。原谅我的无知。

我已在头文件中声明了上述函数,并将其包含在相关的两个源文件中。

结构 bs_gmm_var 在标头中声明,我已将其包含在相关的两个源文件中。声明如下

然后我在主函数中声明了一个指向上述结构的指针。这个指针与另一个结构一起被发送到下面的函数。

结构 bs_gmm_var 定义在如下所示的函数中:

如您所见,这通过指针 gmm_stats 定义了结构 bs_gmm_var。现在,我发送给上述函数的指针作为定义的结构的地址(通过指针 gmm_stats)。我将指针发送给函数:

0 投票
2 回答
60 浏览

c - 存储类:了解静态

我无法理解这个程序的输出 -

输出为 0 0 0 0

我的疑问是为什么在第一次调用 main 时不会初始化静态?如果我假设静态在第一次调用 5 时被初始化,然后在调用之间共享,则输出应该是 4 3 2 1

谢谢!

0 投票
3 回答
174 浏览

c - 使用外部变量编译程序时出现问题

当我创建一个单独的块(新的一对花括号)时,在 main() 函数内部,如下所示:

当我编译这段代码时,我遇到了一个错误:

如果 int y 的定义位于 main 函数的末尾,则代码编译并运行得很好。

这个错误背后的原因可能是什么?根据我的书,如果一个变量被声明为 extern,那么我们可以在定义它之前使用它,编译器将在整个文件中搜索变量的定义。

0 投票
1 回答
398 浏览

c - 声明一个带有存储类说明符但没有类型说明符的变量是什么意思?

在阅读了ANSI C Yacc 语法规范后,我注意到以下内容都是有效的:

这对我来说似乎很奇怪,因为我对类型的理解表明这些变量都没有类型。这些是什么意思?它们是如何进行类型检查的?分配了多少内存?

0 投票
4 回答
120 浏览

c - C中的静态存储类

如果我以这种方式在函数中声明一个静态变量:

static int i=4; //custom code i++;

它按预期工作,即它在函数调用之间维护变量值。

但如果我声明如下:

static int i; i=4; //custom code i++;

它不会在调用之间维护值,并且像局部变量一样工作。

这是否意味着“i”不再是函数内部的静态变量?这种行为背后的原因是什么?

extern关键字也会出现类似的情况。

0 投票
2 回答
99 浏览

c++ - 与自动和静态变量相关的混淆

在上面的代码中,我了解变量 a(内部块内)的可见性仅在该块内具有范围,因此我得到了该特定输出。但是在该块之外声明的变量 a 即使在内部块内也应该有它的范围......因此我怎么可能再次输入int a=20; 它不应该给我一个错误,比如“重新定义 a”和“先前的声明”一个在这里”。就像我使用

我的第二个问题是这个

除了与前面的代码相同的疑问之外,为什么我没有收到像“重新定义 a”这样的错误,这是我与此代码相关的疑问。

对于上面的代码,我得到了相同的Output: 10 20 10结果,但我所期望的是

我的意思是在内部块中,一旦将静态 int a 重新初始化为 20,即使它退出块后它也不应该是相同的值吗?因为静态变量的作用域是整个程序。

0 投票
0 回答
275 浏览

c++ - 无法使用 GLM 库,出现错误“非法存储类”

最近,我开始在我的一个 OpenGL 项目中使用 GLM 库。直到现在我已经使用了自己的数学库,所以这个 GLM .. 它是否包含错误?

看看代码

现在,我明白了

现在,我可以完美地消除这些错误,但这不等于编辑库本身吗?难道我做错了什么?这里发生了什么?

0 投票
3 回答
154 浏览

c - 变量 i 在 switch case 中的行为

我不明白实际的行为,输出是45 9
谁能给我正当的理由。

  1. 这个怎么运作?
  2. 为什么会这样?。

提前致谢。

0 投票
1 回答
273 浏览

c - c中静态函数的范围

一旦我听说声明为静态的函数不是放在堆栈中,而是放在堆中。现在,当我研究这个时,我发现这很有趣,但看起来不是真的。那么这是真的吗?或者有什么方法可以做到这一点(把函数放在堆上)?

0 投票
1 回答
338 浏览

c - 为什么 BSS 段默认为“16”?

据我所知,c 程序的分段是:

在我的 RHEL 5.4 64 位机器上,用于以下 c 程序

当我做:

我无法理解为什么

bss=16

因为我没有声明/初始化任何全局/静态变量?