江南一散人

2020-05-08 18:45·优质科技领域创作者

用了这么多年C语言,居然又被这几行代码毁了三观

【用了这么多年C语言,居然又被这几行代码毁了三观】
一位同事在边上唉声叹气,闷闷不乐。一问,原来是有个BUG一直调试不出来,而且还是一个比较容易重现的问题。

出于好奇,就坐下来帮他一起定位了一下。结果,问题定位出来后,我也跟着郁闷了半天,三观尽毁!

具体定位过程就不说了,那不是重点。刨除业务逻辑,问题最终精简为下图中的几行代码。

你的第一感觉是什么?你觉得会打印什么呢?

肯定不少人和我一样,会发出灵魂三问:这语法正确?这能编译通过?这能正常运行?

相信我,我已经用GCC和Clang试过,打开最严格的告警选项,没有任何编译错误!而且,能够正常运行!有其它C语言编译器的童鞋,不妨也试一下看,比如Virtual Studio等。

目前,还不确定是不是只有特定的编译器才能通过。有没有童鞋清楚呢?

这两天打算好好研究下,看看GCC和Clang在语法和语义上究竟是如何处理这种语法逻辑的,等研究清楚再来告诉大家。

有想法的童鞋,欢迎留言讨论!
#程序员# #C语言# #Linux# #科技青年#
举报
评论 0