Jun 6, 2013

[Tips] Macro, các vấn đề liên quan đến vùng nhớ và quản lí vùng nhớ.



Đang phải cày bừa với đồ án Đồ họa máy tính, nhiệm vụ của mình là viết 1 module để đọc được file WaveFront Obj. Dĩ nhiên là đã xong được các thành phần cơ bản. Link code ở đây Qua lần code tốc độ này, mình rút ra vài điều.

  • Khi dùng macro có nhiều dòng, tuyệt đối không được có dấu space, tab sau đầu \ khi xuống dòng. Nếu có, đôi khi sẽ dính các lỗi rất khó debug. Vì khi sử dụng macro, ta chấp nhận 1 sự thật cay đắng là không debug trực tiếp lên code macro được.
  • Kỹ thuật macro rất tốt cho việc viết các code tổng quát và tránh bị lặp mã. Nhưng như 1 con dao 2 lưỡi, đã chạm đến macro là chạm đến những rắc rối kỹ thuật linh tinh.
  • Trong C/C++ . Điều đau lòng là ta phải trực tiếp quản lí vùng nhớ. Nên máy tính không giúp ta chuyện vùng nhớ đó được alloc (xin cấp vùng nhớ) chưa, được init (khởi gán) chưa. Nên cần có 1 chiến lược code hợp lí. Vì nếu lỗi liên quan đến vùng nhớ, ta khó khoanh vùng được lỗi. Và thường, lỗi chỉ được báo như là lỗi ở code ta giải phóng vùng nhớ. Còn thực tế thì đâu đó xa vời trong các hàm ta làm
  • Quản lí code tốt sẽ giúp debug tốt hơn. Và điều quan trọng là: điều không thể thì chắc chắn nó không xảy ra rồi. Đừng ngồi đó mà loay hoay tìm hiểu. Nếu có gì đó lỗi ở lệnh int a = 1+1; thì đó không phải là lỗi của người lập trình.
  • Đôi khi, giải pháp nằm ngay trước mắt. Vấn đề là do ta đã không chịu đọc kỹ tài liệu