问题标签 [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.
intel - c语言的存储类REGISTER有多少个寄存器和什么样的寄存器可用
寄存器存储类用于快速访问变量,其内存分配在 CPU 中。但是cpu中的寄存器是有限的。我使用英特尔酷睿 i5-4260U 处理器。我已经访问了英特尔网站以获取注册表的详细信息。但是我找不到任何关于 cpu 包含多少寄存器的规范(访问网站请单击此处)。即使我能找到寄存器的数量((来自8086/8088 中有多少寄存器?))但我无法弄清楚其中有多少被 c 存储类使用。
c - 谁决定寄存器存储类的实际存储?
最近我在一次采访中被问到 Q:谁真正决定寄存器变量将存储在哪里(在 RAM 或寄存器中)。
我在谷歌上搜索过,我得到了那个编译器的答案。但是编译器如何决定呢?根据我的理解,它应该在运行时决定。
如果我们在不同的机器上编译和运行程序,那么编译器如何决定将寄存器存储类值存储在哪里。
c++ - C++ 中的 register 关键字有什么问题?
我正在阅读这篇文章,它说该register
关键字很可能会从下一个 C++ 标准中删除。它还说它register
在 2011 年被弃用。那么,register
存储类说明符有什么问题?
我认为现代编译器非常聪明,它们隐式优化常用变量以提高速度(快速访问)并将它们放入 CPU 寄存器中。
但是,C++ 专家也说不要或永远不要使用register
. 因此,register
关键字有什么问题?
c++ - 为什么我们不能总是在 C 中使用寄存器存储类?
我在一本书中读到,每当我们使用存储类作为寄存器声明一个变量时,它将被存储在一个寄存器中,这取决于它的可用性。如果没有可用的寄存器,则将为其分配默认存储类型“auto”。
每当我们声明一个变量而没有明确提及任何存储类时,分配给它的默认存储类型就是“auto”本身。
所以,我的问题是,为什么不将每个变量都声明为“寄存器”存储类 - 如果没有可用的寄存器,它无论如何都会被视为默认的“自动”类本身。幸运的是,如果寄存器可用,那么它将被存储在一个中。我知道我们不能再使用 & 运算符,但是如果我不打算使用指针和地址怎么办?那么我可以用“注册”存储类声明这些变量吗?因为这似乎是一种不好的做法。
编辑:我在网上搜索,但“地址不可用”是唯一提到的一点。没有提到为什么不能用 'register' 声明其余变量。
c - 主函数内部的外部存储类变量
我对静态和外部存储类感到非常困惑。我不明白下面的代码片段有什么问题。我希望 printf 打印零值。构建失败并出现错误“未定义对 'i' 的引用”。我希望语句“extern int i”是有效的C语句。不是吗?
c - C 语言标准是否指定了对全局寄存器变量的支持
我读到 gcc 提供了将全局变量定义为寄存器存储变量的支持。我想知道的是标准是否有任何关于这种支持的规范。
c - 运行时实体和加载时实体
运行时实体和加载时实体有什么区别。为什么static
存储类是加载时间实体?
程序:
上述程序产生编译时错误。为什么我们不能通过 将值分配给静态x
变量i
?
c++ - 可变变量内存位置
我对 C++ 中的可变变量有以下理解。
- 它是一个特殊的存储类。
- 可变变量可以由常量对象修改。
- 您想要使用可变变量的一个示例是您不想执行昂贵的操作来获得结果,除非特别要求。如果特别要求,您的程序将执行一次操作并将结果缓存在可变变量中。
我的问题是关于记忆的。编译器将可变变量存储在内存中的什么位置?由于它是可修改的,因此它肯定不会是“只读”内存。
c - 为什么“外部”存储类在功能上的工作方式不同?
以下代码段工作正常
我在这里得到的是,'i'被声明然后定义。因为只有一个定义,所以这很好。
现在,上面给出了以下错误
这里有什么问题?这里也有“i”的单一定义。
function - out 参数是否是一个 ref,其值被隐式重新初始化?
Dlang 将 out 参数描述为:
在函数输入时使用其类型的默认值初始化的参数。
在函数入口使用默认值初始化参数后,它本质上不只是一个ref
?
我没有看到任何out
与ref
. 将参数概念化为写作的捷径
是否准确:out
我不知道语言的复杂性,所以我担心有这种印象会在不可预见的情况下给我带来未来的悲伤。
可以在这些之间做出更强的区分parameter storage classes
,还是真的是自动重新初始化的 ref 参数?