這句是非常經(jīng)典、簡潔的指針操作語句,但是它在gcc編譯器下居然會出現(xiàn)警告。
warning: suggest parentheses around assignment used as truth value
理由:在C語言中,非0即代表TRUE,反之為FALSE。上面的語句以*s的值用于最后的判斷。但是由于長期的編程實(shí)踐告訴我們,人們經(jīng)常在“=”和“==”的使用上出現(xiàn)手誤,所以gcc編譯器為此要求我們明確地告訴編譯器它是“=”而不是“==”,是故意,而非手誤。
既然我們的語句如上所示,并非要用“==”,因此我們只需修改成下列樣式即可:
參考:
1、http://www.network-theory.co.uk/docs/gccintro/gccintro_94.html
2、http://darkmomo.blogspot.com/2008/05/suggest-parentheses-around-assignment.html