define TRONG C++ – ĐỊNH NGHĨA HẰNG SỐ & MACRO



#define TRONG C++ – ĐỊNH NGHĨA HẰNG SỐ & MACRO

✍️ Biên soạn bởi Học Tin Việt – Giúp các bạn lập trình ngắn gọn, linh hoạt hơn! 🚀


🔹 #define là gì?

🧠 #define là một chỉ thị tiền xử lý (preprocessor directive) trong C/C++
👉 Dùng để định nghĩa các hằng số, macro, hoặc thay thế đoạn mã.


✅ Cú pháp cơ bản:

#define TÊN_GỌI giá_trị

📌 Sau khi định nghĩa, mọi nơi trong chương trình xuất hiện TÊN_GỌI sẽ được thay bằng giá_trị trước khi biên dịch.


🧪 Ví dụ đơn giản:

#define PI 3.14159
int main() { float r = 5; float area = PI * r * r; cout << "Diện tích: " << area; }

🖨️ Kết quả:

Diện tích: 78.5397

💡 Dùng #define để viết macro (hàm rút gọn):

#define MAX(a, b) ((a) > (b) ? (a) : (b))
int x = 10, y = 20; cout << MAX(x, y); // Kết quả: 20

⚠️ Lưu ý: Macro không kiểm tra kiểu dữ liệu, và có thể gây lỗi nếu dùng không cẩn thận (ví dụ: thiếu ngoặc).


🎯 So sánh #defineconst:

Đặc điểm#defineconst
Kiểm tra kiểu❌ Không kiểm tra kiểu✅ Có kiểm tra kiểu dữ liệu
Phạm viToàn bộ chương trìnhTrong phạm vi biến / hàm
Gỡ lỗi dễ hơn❌ Khó trace lỗi✅ Dễ debug hơn
Có thể dùng hàm✅ Dùng macro function❌ Không dùng làm hàm

📌 Một số cách dùng phổ biến:

#define endl '\n'
#define fast_io ios::sync_with_stdio(false); cin.tie(0); #define loop(i,n) for(int i=0;i<n;i++)

🧠 Dùng để rút gọn code thi đấu lập trình, hoặc giúp chương trình dễ đọc hơn.


🛑 Cẩn thận khi dùng #define:

  • ⚠️ Không có kiểm tra lỗi cú pháp khi thay thế!
  • ⚠️ Có thể gây lỗi khó tìm nếu trùng tên hoặc thiếu dấu ngoặc!
  • ⚠️ Nên ưu tiên dùng const trong chương trình lớn hoặc làm việc nhóm.


✅ Tóm tắt:

Bạn muốn...Dùng #define để...
Định nghĩa giá trị không đổi#define SIZE 100
Rút gọn tên hàm hoặc cấu trúc lặp#define loop(i,n) for(int i=0;i<n;i++)
Thay thế ký hiệu đặc biệt#define endl '\n'
Tạo macro tính toán đơn giản#define MAX(a,b) ((a) > (b) ? (a) : (b))
Mới hơn Cũ hơn
Đọc tiếp:
Lên đầu trang