C 多个相同文本与常量的内存使用

C 多个相同文本与常量的内存使用,c,memory,constants,literals,C,Memory,Constants,Literals,在C语言中,就所使用的内存量而言,如果有一堆函数都具有return1,是每个1文本存储还是只有一个1 也就是说,最好使用(在文件范围内)static const int numOne=1,然后让函数使用返回numOne 如果它依赖于编译器,我将使用TI的C28x编译器编译TI MCU 请注意,这个问题是关于C不是C++的。 < P>不,通常文字不是“存储”的。特别是小整数常量,因为这一常量通常直接进入汇编程序,它们直接在代码中,而不是在某些数据段中。文本在数据内存中没有存储。它们将嵌入到代码中。

在C语言中,就所使用的内存量而言,如果有一堆函数都具有
return1
,是每个
1
文本存储还是只有一个
1

也就是说,最好使用(在文件范围内)
static const int numOne=1
,然后让函数使用
返回numOne

如果它依赖于编译器,我将使用TI的C28x编译器编译TI MCU


请注意,这个问题是关于C不是C++的。

< P>不,通常文字不是“存储”的。特别是小整数常量,因为这一常量通常直接进入汇编程序,它们直接在代码中,而不是在某些数据段中。

文本在数据内存中没有存储。它们将嵌入到代码中。它们可能存在于登记册中。我想这也是你不能获取文本地址的原因(字符串文本是例外)我想我所有的字符串文本都是阻塞我的.econst部分的原因:)你的控制器有多少ram?因为在contrller中没有堆部分,它的全部内容都是关于ram和闪存的。我认为字符串文字将存储在flash中..不确定。如果您在ti的e2e中问这个问题,或者加载设备并检查反汇编,
MOVB AL,#0x0
会更好。谢谢