|
|
gcc得不到想要的结果。#include <stdio.h>
int main(void)
{
int c, rc;
rc = scanf("%c", &c);
int i=-1;
printf("%d, %c", c , c);
return 0;
} gentoo的gcc 4.1和4。3版本都输出了不应该的结果。在一个debian的机器上,4。2。3版本,结果同样。但是在一个ubuntu的机器上,用的是4。3。2版本,输出了预期的结果,百思不得其解。如果把int i=-1(最可靠的办法就是初始化c);这行给去掉,就可以得到预期的结果(如果在x86_64编译器上用-m32编译32bit版本,结果也有问题)。
看起来是,[color="Red"]是scanf函数不允许(把char型,输入到int型)?但是为什么有的gcc版本可以呢?为什么 int i=-1;会干扰输出? |
|