[C 的那些眉角] undefined behavior — 那些「在我電腦會動」的陷阱

有一次 review 一個學弟寫的程式碼,他很得意地跟我說:「這段我測過了,跑得好好的。」 我看了一眼,裡面有 … 閱讀全文

[C 的那些眉角]巨集函式的副作用 — MAX(a++, b++) 會怎樣

有一次 code review,同事寫了這樣一行:

int result = MAX(sensor_read(), threshold);

我看了一眼沒說什麼,但心裡其實有點毛。

MAX 是怎麼定義的?他說是標準的那種:

#define MAX(a, b) ((a) > (b) ? (a) : (b))

sensor_read() 會被呼叫幾次?他楞了一下。答案是:不一定,可能是一次,也可能是兩次

閱讀全文