【发布时间】:2014-07-02 15:09:19
【问题描述】:
请帮助我区分 C 中的这些代码:
代码 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编译器。
【问题讨论】:
-
答案是否应该假设“mingw gcc”是唯一的平台?
标签: c types implicit-conversion