gpt4 book ai didi

c - 函数作用域中 const 静态变量的内存分配

转载 作者:太空狗 更新时间:2023-10-29 16:02:21 25 4
gpt4 key购买 nike

在 C 语言中,static const intconst int 在内存分配方面有什么区别?

void f(int *a)
{
static const int b = 10;
const int c = 20;

*a = b + c;
}

b 只会消耗 sizeof(int) 吗?而c,它会为20值消耗sizeof(int),和sizeof(int),加上f 执行期间的复制指令?

最佳答案

语言标准对此没有任何说明。

但是,编译器可能会将您的代码转换为:

void f(int *a) {
*a = 30;
}

因此根本不分配任何内存(显然除了指令空间)。

关于c - 函数作用域中 const 静态变量的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14298864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com