我需要将int
值转换为char
字符串,我使用了以下函数,其中 score 的类型为int
。
void updateScore(){
char str[5] = "0";
sprintf(str, "%d", score);
drawString(str);
}
void drawString5x7(char *string){
while (*string)
drawChar5x7(*string++);
}
这似乎可行,除了这段代码是一个更大的系统的一部分,我在一个可用内存空间有限的微控制器 (MSP430) 上编写视频游戏。我可以在我的游戏死机和崩溃之前更新一次分数。
出于某种原因,每当我添加sprintf()
函数(或其他类似函数,如snprintf
, 或asprintf
)时,它都会占用 MCU 上的大量可用内存。
使用sprintf
它编译的函数为11407 字节。如果我注释掉那一行,我的代码编译为4714 字节
我对转换int
为char
字符串不太熟悉,但是,我认为它不应该消耗那么多内存。任何指导将不胜感激。