请帮我区分C语言中以下代码的不同之处:
问题在于第一段代码按预期返回253,但是第二段代码返回了-3,这是不符合预期的,因为返回类型应该是无符号的。请问这是怎么可能的呢?
我使用的是Mingw GCC编译器。
代码1:
#include<stdio.h>
#include <stdint.h>
uint8_t fb(int a)
{
return -3;
}
int main()
{
int a = fb(-3);
printf("%d",a);
return 0;
}
代码 2:
#include<stdio.h>
unsigned int fb(int a)
{
return -3;
}
int main()
{
int a = fb(-3);
printf("%d",a);
return 0;
}
问题在于第一段代码按预期返回253,但是第二段代码返回了-3,这是不符合预期的,因为返回类型应该是无符号的。请问这是怎么可能的呢?
我使用的是Mingw GCC编译器。