指针传递和值传递的建议

例子:对于嵌入式字体,结构体通常包含:
typedef struct {
uint8_t height; // 字体高度
uint8_t width; // 可能没有,或固定比例
const uint8_t *model; // 字体数据指针(最重要!)
// 可能还有其他属性:起始字符、结束字符等
} font_t;
关键点在于 model 指针指向的字体数据数组通常很大(几KB到几十KB),但传递的只是指针本身(4/8字节),而不是整个字体数据。
最佳实践建议:
强烈建议保持使用指针传递,原因如下:
1、性能最优:无论字体多大,只传递一个指针
2、节省栈空间:嵌入式系统栈空间有限
3、一致性:与标准库函数(如printf)做法一致
浙公网安备 33010602011771号