我有以下的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]
能否有人解释一下为什么会出现这个警告?这三个变量都是uint8_t
类型,所以我不太明白int
从哪里来。
int
。<stdint.h>
定义的uint8_t
和其他类型。您可以使用它。然后使用gcc -std=c99
或gcc -std=gnu99
进行编译(以获取gnu扩展)。如果在更高版本上,则gcc -std=c11
或gcc -std=gnu11
也可以。 - Shahbazstdint.h
,无论如何还是谢谢你。 - watain