![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
||||||||||||||||||||||||||||||||||||||
| VC++ 6.0 的奇异之处 | ||||||||||||||||||||||||||||||||||||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-9-12 ![]() |
||||||||||||||||||||||||||||||||||||||
|
如下代码,大家认为它最终将输出什么,“12”还是“21”? #include <stdio.h> inline int test1 () { printf ("1"); return 0; } int test2 () { printf ("2"); return 0; } int main(int argc, char* argv[]) { int nary [1]; *(nary + test1 ()) = test2 (); return 0; } 请分别编译debug和release版本运行。
下面公布测试结果:
谁对谁错呢?也许得到“21”或“12”都能说得过去吧?这种情形不知道C/C++标准有没有明确规定,请指教。 VC6的编译出的Debug版和Release版结果竟然不一样,有点自相矛盾吧?
本文来源:http://blog.csdn.net/efdev/archive/2007/08/30/1765372.aspx
|
||||||||||||||||||||||||||||||||||||||
| 文章录入:admin 责任编辑:admin | ||||||||||||||||||||||||||||||||||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | ||||||||||||||||||||||||||||||||||||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|