Macro là gì?
Marco là 1 trong tên bất kì (do xây dựng viên để tên) trỏ tới 1 khối lệnh triển khai một tác dụng nào đó.Trong quy trình tiền up load (pre-processor), những macro được áp dụng trong công tác được sửa chữa thay thế bởi các khối câu lệnh tương ứng.Định nghĩa macro bởi lệnh #defineVí dụ: tư tưởng macro tính giá bán trị lớn số 1 của 2 số.Bạn sẽ xem: Macro trong c là gì
#include #include #define MAX(A, B) ((A) > (B) ? (A) : (B))void main( void ) int a = 5, b = 7; float c = 5.6, d = 4.5; printf(" MAX(%d, %d) = %d", a, b, MAX(a, b)); printf(" MAX(%f, %f) = %f", c, d, MAX(c, d)); getch();Kết quả:

Macro tìm giá bán trị lớn số 1 của 2 số nguyên
Hàm là gì?
Function là một trong khối lệnh tiến hành một công dụng nào đó.
Bạn đang xem: Macro trong c là gì
Ví dụ: viết hàm tìm giá trị lớn số 1 2 số nguyên
#include #include int MAX(int, int);void main( void ) int a = 5, b = 7; printf(" MAX(%d, %d) = %d", a, b, MAX(a, b)); getch();int MAX(int a, int b) return (a > b ? a : b);Kết quả:

Hàm tìm giá bán trị lớn số 1 của 2 số nguyên
Ưu yếu điểm của Macro với Hàm
Macro | Hàm |
Việc định nghĩa macro nặng nề hơn khái niệm hàm. | Phải chỉ rõ kiểu dữ liệu của tham số và cực hiếm trả về |
Macro tạo thành các inline code, thời gian up date inline code ngắn hơn thời gian điện thoại tư vấn hàm | Chương trình mất time dịch tự vùng nhớ hàm được tàng trữ sang vùng ghi nhớ goi hàm. |
Giả sử macro được gọi đôi mươi lần trong chương trình, đôi mươi dòng code sẽ tiến hành chèn vào chương trình trong quy trình tiền xử lí. Điều này làm cho kích cỡ của chương trình (.EXE, .DLL, .LIB,…) phình to ra. Xem thêm: Khu Phi Thuế Quan Là Gì - Các Khu Phi Thuế Quan Tại Việt Nam | Giả sử 1 hàm được gọi đôi mươi lần, đang chỉ gồm 1 bản copy của hàm vào chương trình. Kích thước chương trình bé dại hơn áp dụng macro. |
Chú ý: khi thực hiện macro nhằm tránh side effect
Ví dụ: chế tạo macro tính bình phương số nguyên
#include #include #define SQUARE(X) (X*X)void main( void ) printf("SQUARE(%d) = %d", 3+5, SQUARE(3+5)); getch();Giải thích:
Kết quả ước muốn sẽ là 8*8 = 64. Cơ mà thực tế, tác dụng như sau: 3+5*3+5 = 3 + 15 + 5 = 23.
Khi chúng ta định nghĩa macro, phải để ý dấu ngoặc. Macro SQUARE được update lại như sau: