result = *x / *y; //no problem
result = *x/*y; //compile error
查了好久都不知道為什麼,後來發現… y 被當成多行注解,抹掉了
result = (*x) / (*y); //for your safety
其實有時候不是在寫公司的 code 很懶得去注意 style,上述的方法基本上是沒在用,只能說永遠記得,C 是 maximal munch strategy,你不把運算符切開,它一次就咬住最大口來分析代碼。
經典問題:
a = x+++y;
答案為下列何者?
1.
a = x+ ++y;
2.
a = x++ +y;
思考一下 :)
這個問題我的前輩們有提到
回覆刪除當初找半天才知道原來是空格惹的禍
甚至一連串參數的括號也是要注意.
看了這問題所提到C是 maximal munch strategy.
是因為C的運算符有分優先級
所以當中的 a = x++ +y; // "++"優先於"+"
應該是確答案!