c的陷阱

coding_qiao發表於2020-12-29

x=y/*p /y除以p所指向的值,得到的結果賦給x/
程式設計師的本意應該是y除以p所指向的值,再把值賦給x,編譯器在看到/*後就認為是註釋的開始,而不會看到p。以上可以重寫為:
x=y/ *p
或者寫成
x=y/(*p)
這樣就可以避免程式出現二義性,在上下文中可能會招惹麻煩
又例如
在老版本的c語言中允許=+來代替+=的含義,這種老版本的編譯器就會將a=-1,
理解為
a =- 1
即a = a - 1
如果程式設計師的本意是a = -1,那就違背了程式設計師設計的程式的本意

諸如這樣的問題,可能作為一個資深的c語言程式設計者,也會在不經意間犯這樣的錯誤。那這你就很有必要去看一下《c陷阱與缺陷》這本書了。
參考文獻 《c陷阱與缺陷》

相關文章