4
我得到一個警告,這條線:gcc的 - 時序點警告標誌是否被破壞?
e = strtol(++s, (char **)&s, 10);
移動++s
到一個單獨的語句使警告消失,但據我所知,這個警告完全不正確。 s
的值僅用於計算++s
一次。 s
的第二次使用只是採取它的地址。有什麼我失蹤?
我得到一個警告,這條線:gcc的 - 時序點警告標誌是否被破壞?
e = strtol(++s, (char **)&s, 10);
移動++s
到一個單獨的語句使警告消失,但據我所知,這個警告完全不正確。 s
的值僅用於計算++s
一次。 s
的第二次使用只是採取它的地址。有什麼我失蹤?
較新版本的gcc(4.4.3或4.4.5)不會爲您發佈的行生成任何警告。那裏的警告的產生似乎是舊版gcc版本中的一個錯誤。
請參閱[GCC bug 18050](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18050) - 修正於4.4.0。 – ugoren 2013-02-13 11:46:41
我不能使用gcc 4.4.3或4.4.5來重現問題。發佈一個完整的example.c來演示它? – Kamal 2010-11-21 16:25:26
啊,看起來就像那個系統上舊的3.x gcc。 – 2010-11-21 16:29:23
順便說一句,作爲答案發布,我會接受它,因爲「目前的gcc不會產生這個警告」是一個很好的答案,我的問題是否是警告是不正確的。 – 2010-11-21 16:30:22