Tiền xử lý trong C

Mọi gười cho mình hỏi tại sao kết quả là 18 vậy, cách tiền xử lý này hoat động như thế nào. cám ơn mọi người.
Assuming #define sum(a, b) a + b predict the value of: 5 * sum( 3 + 1, 2)
A. 30
B. 18
C. 22
D. none of the above
E. implementation dependent.

#define cũng chỉ là thay thế thôi.

sum(3 + 1, 2) sẽ được thay thế bởi 3 + 1 + 2.

Do vậy 5 * sum(3 + 1, 2) = 5 * 3 + 1 + 2 = 18

7 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?