Spi*_*dey 3 c memory static memory-management
在C中,a static const int
和a const int
在内存方面有什么区别?
void f(int *a)
{
static const int b = 10;
const int c = 20;
*a = b + c;
}
Run Code Online (Sandbox Code Playgroud)
将b
只消耗sizeof(int)
?并且c
,它会消耗sizeof(int)
该20
值,并且sizeof(int)
在f
执行期间加上复制指令吗?
语言标准对此没有任何说明.
但是,编译器可能会将您的代码转换为:
void f(int *a) {
*a = 30;
}
Run Code Online (Sandbox Code Playgroud)
因此根本不分配任何内存(显然除了指令空间).
归档时间: |
|
查看次数: |
1847 次 |
最近记录: |