Bốn giai đoạn dịch
Một lệnh gcc chạy qua bốn bước: tiền xử lý, biên dịch, hợp dịch, liên kết. Đo từng bước, và đọc assembly mới thấy trình dịch lặng lẽ đổi printf thành puts. Đo thật trong container.
Một lệnh gcc chạy qua bốn bước: tiền xử lý, biên dịch, hợp dịch, liên kết. Đo từng bước, và đọc assembly mới thấy trình dịch lặng lẽ đổi printf thành puts. Đo thật trong container.
Macro trông như hàm nhưng chỉ là dán văn bản: SQ(i++) khiến i tăng hai lần, SQ_BAD(1+2) ra 5 chứ không phải 9. Và một #include kéo theo 37 file. Đo thật bằng gcc -E.
Include guard chống được include lặp, nhưng nó khóa theo TÊN macro chứ không theo file — hai header trùng tên guard làm một cái biến mất im lặng. Đo thật bằng gcc -E.