我有以下 C 代码:
typedef unsigned char uint8_t;
void main(void) {
uint8_t a = 1, b = 2, res;
res = a + b;
}
当我使用 编译此代码时gcc -Wconversion
,我收到以下警告:
test.c: In function 'main':
test.c:5:10: warning: conversion to 'uint8_t' from 'int' may alter its value [-Wconversion]
有人可以解释为什么会出现这个警告吗?所有三个变量都是 type uint8_t
,所以我不太明白它的int
来源。