【发布时间】:2021-05-26 20:09:11
【问题描述】:
我有这个代码:
#include <stdint.h>
void something(float a);
int main()
{
uint8_t a = 28;
something(a);
return 0;
}
void something(float a)
{
printf("%f\n", a);
}
我正在使用类似的函数将不同类型的变量记录到文件中,并且我想收到一条错误/警告消息,因为我正在使用错误的参数类型调用函数 something(而不是 uint8_t浮动)。
我怎样才能做到这一点?
【问题讨论】:
-
代码是有效的,因为
uint8_t可以隐式转换为float而不会丢失价值。 -
How can I achieve this?为什么不先创建struct something_arg { float a; }然后再要求void something(struct something_arg arg)? -
@dbush 我在使用 void something (uint8_t a) 时没有收到警告;并传递一个浮点参数(除了 printf 警告)。