- 论坛徽章:
- 0
|
这里的一段代码在linux系统中,通过gcc编译会出现意想不到的结果
1 #include
2
3 int my_abs(int i)
4 {
5 return abs(i);
6 }
7 int main(int argc, char** argv)
8 {
9 int i=2;
10 //first running
11 if( -10*my_abs(i-1) == 10*my_abs(i-1) )
12 printf ("OMG,-10==10 in linux!\n");
13 else
14 printf ("nothing special here\n");
15
16 //second running
17 if( -10*abs(i-1) == 10*abs(i-1) )
18 printf ("OMG,-10==10 in linux!\n");
19 else
20 printf ("nothing special here\n");
21 return 0;
22 }
结果是
nothing special here
OMG,-10==10 in linux!
问题出在哪里?
留着下班结解决。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/37836/showart_426435.html |
|