例如,我printf在C++中使用函数用于8位CPU(AVR).以下代码是否安全:
printf
uint8_t a = 5; printf("%d", a);
这里%d期望int(在我的情况下为16位,在任何情况下至少为16位),但我传递8位整数.
%d
int
C/C++标准是否保证任何类型的等级小于int升级int?
同样的问题float a和%f期望double,以及其他类似的类型.
float a
%f
double
c c++ variadic-functions
c ×1
c++ ×1
variadic-functions ×1