问题标签 [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.
c - 此声明没有存储或类型说明符
我有这个功能:
我在其中声明了一些变量,例如:
问题是当我试图定义或使用这些变量时——例如:
我收到两个错误:
关于
/li>num_models
:和
/li>gmm_ctxt
:
我知道局部变量默认是自动存储类,而且我已经指定了变量的类型;为什么我会收到这种类型的错误?
函数调用来自main()
另一个源文件。
我知道我正在监督一些事情。原谅我的无知。
我已在头文件中声明了上述函数,并将其包含在相关的两个源文件中。
结构 bs_gmm_var 在标头中声明,我已将其包含在相关的两个源文件中。声明如下
然后我在主函数中声明了一个指向上述结构的指针。这个指针与另一个结构一起被发送到下面的函数。
结构 bs_gmm_var 定义在如下所示的函数中:
如您所见,这通过指针 gmm_stats 定义了结构 bs_gmm_var。现在,我发送给上述函数的指针作为定义的结构的地址(通过指针 gmm_stats)。我将指针发送给函数:
c - 存储类:了解静态
我无法理解这个程序的输出 -
输出为 0 0 0 0
我的疑问是为什么在第一次调用 main 时不会初始化静态?如果我假设静态在第一次调用 5 时被初始化,然后在调用之间共享,则输出应该是 4 3 2 1
谢谢!
c - 使用外部变量编译程序时出现问题
当我创建一个单独的块(新的一对花括号)时,在 main() 函数内部,如下所示:
当我编译这段代码时,我遇到了一个错误:
但
如果 int y 的定义位于 main 函数的末尾,则代码编译并运行得很好。
这个错误背后的原因可能是什么?根据我的书,如果一个变量被声明为 extern,那么我们可以在定义它之前使用它,编译器将在整个文件中搜索变量的定义。
c - 声明一个带有存储类说明符但没有类型说明符的变量是什么意思?
在阅读了ANSI C Yacc 语法规范后,我注意到以下内容都是有效的:
这对我来说似乎很奇怪,因为我对类型的理解表明这些变量都没有类型。这些是什么意思?它们是如何进行类型检查的?分配了多少内存?
c - C中的静态存储类
如果我以这种方式在函数中声明一个静态变量:
static int i=4;
//custom code
i++;
它按预期工作,即它在函数调用之间维护变量值。
但如果我声明如下:
static int i;
i=4;
//custom code
i++;
它不会在调用之间维护值,并且像局部变量一样工作。
这是否意味着“i”不再是函数内部的静态变量?这种行为背后的原因是什么?
extern
关键字也会出现类似的情况。
c++ - 与自动和静态变量相关的混淆
在上面的代码中,我了解变量 a(内部块内)的可见性仅在该块内具有范围,因此我得到了该特定输出。但是在该块之外声明的变量 a 即使在内部块内也应该有它的范围......因此我怎么可能再次输入int a=20;
它不应该给我一个错误,比如“重新定义 a”和“先前的声明”一个在这里”。就像我使用
我的第二个问题是这个
除了与前面的代码相同的疑问之外,为什么我没有收到像“重新定义 a”这样的错误,这是我与此代码相关的疑问。
对于上面的代码,我得到了相同的Output: 10 20 10
结果,但我所期望的是
我的意思是在内部块中,一旦将静态 int a 重新初始化为 20,即使它退出块后它也不应该是相同的值吗?因为静态变量的作用域是整个程序。
c++ - 无法使用 GLM 库,出现错误“非法存储类”
最近,我开始在我的一个 OpenGL 项目中使用 GLM 库。直到现在我已经使用了自己的数学库,所以这个 GLM .. 它是否包含错误?
看看代码
现在,我明白了
现在,我可以完美地消除这些错误,但这不等于编辑库本身吗?难道我做错了什么?这里发生了什么?
c - 变量 i 在 switch case 中的行为
我不明白实际的行为,输出是45 9。
谁能给我正当的理由。
- 这个怎么运作?
- 为什么会这样?。
提前致谢。
c - c中静态函数的范围
一旦我听说声明为静态的函数不是放在堆栈中,而是放在堆中。现在,当我研究这个时,我发现这很有趣,但看起来不是真的。那么这是真的吗?或者有什么方法可以做到这一点(把函数放在堆上)?
c - 为什么 BSS 段默认为“16”?
据我所知,c 程序的分段是:
在我的 RHEL 5.4 64 位机器上,用于以下 c 程序
当我做:
我无法理解为什么
bss=16
因为我没有声明/初始化任何全局/静态变量?