Macro trong c là gì
Macro là gì?
Marco là 1 trong tên bất kỳ (bởi lập trình sẵn viên đặt tên) trỏ tới 1 kăn năn lệnh tiến hành một chức năng làm sao kia.Trong quy trình tiền up date (pre-processor), những macro được áp dụng trong lịch trình được thay thế vị những kân hận câu lệnh tương xứng.Định nghĩa macro bởi lệnh #defineVí dụ: quan niệm macro tính quý giá lớn nhất của 2 số.Bạn đã xem: Macro vào 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 tra cứu giá trị lớn nhất của 2 số nguyên
Hàm là gì?
Function là một trong kân hận lệnh thực hiện một tác dụng như thế nào kia.
Bạn đang xem: Macro trong c là gì
Ví dụ: viết hàm tra cứu cực hiếm lớn nhất 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 kiếm tìm cực hiếm lớn số 1 của 2 số nguyên
Ưu yếu điểm của Macro và Hàm
Macro | Hàm |
Việc có mang macro khó khăn hơn quan niệm hàm. | Phải chứng thật giao diện tài liệu của tham mê số cùng giá trị trả về |
Macro tạo thành những inline code, thời hạn xử lí inline code ngắn thêm thời gian Điện thoại tư vấn hàm | Chương thơm trình mất time dịch từ bỏ vùng ghi nhớ hàm được tàng trữ thanh lịch vùng ghi nhớ goi hàm. |
Giả sử macro được điện thoại tư vấn đôi mươi lần vào lịch trình, 20 mẫu code sẽ tiến hành ckém vào lịch trình trong quá trình chi phí xử lý. Vấn đề này tạo nên form size của công tác (.EXE, .DLL, .LIB,…) phình khổng lồ ra. Xem thêm: Top 10 Phim Doanh Thu Cao Nhất Mọi Thời Đại, Top 10 Bộ Phim Có Doanh Thu Cao Nhất Mọi Thời Đại | Giả sử 1 hàm được call trăng tròn lần, sẽ chỉ có một phiên bản copy của hàm trong công tác. Kích thước chương trình nhỏ hơn áp dụng macro. |
Xem thêm: Productivity Là Gì - Các Nhân Tố Quyết Định Năng Suất
Chụ ý: khi sử dụng macro để tránh side effect
Ví dụ: chế tạo ra macro tính bình pmùi hươ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 đã là 8*8 = 64. Nhưng thực tế, tác dụng nlỗi sau: 3+5*3+5 = 3 + 15 + 5 = 23.
khi bạn có mang macro, đề xuất chú ý vết ngoặc. Macro SQUARE được update lại như sau: