#define AREA_CIRCLE (frad) (4*PI*frad*frad) //tinh dien tich hinh cau
#define SUM(x,y) ((x)+(y)) //cong 2 so
#define SQR(x) ((x)*(x)) //tinh x binh phuong
#define MAX(x,y) ((x)>(y)?(x):(y)) //tim so lon nhat giua x va y
#define ERROR (s) printf("%s.\n", s) //in thong bao voi chuoi s
[Wiki] Mẹo sử dụng dẫn hướng #define
2 Likes
Mình nghĩ nên thêm ( )
vào tên biến trong #define
int a=SQR(1+3); /*<-> (1+3*1+3) */
/*------------------------------------*/
#define SQR(x) ((x)*(x))
/*---------------------------------------------------------
| code tren tro thanh
+---------------------------------------------------------*/
int a=SQR(1+3) /* <-> ((1+3)*(1+3)) */
#define SQR(x) ((x)*(x))
#define SUM(x,y) ((x)+(y))
#define AREA_CIRCLE(r) (M_PI*(r)*(r))
#define MAX(x,y) ((x)>(y)?(x):(y))
#define ERROR(s) fprintf(stderr,"%s\n",s)
3 Likes
True
Vì nếu không thêm ngoặc vào sẽ bị lỗi
Ví dụ:
#define SQR (x) (x*x) //tinh x binh phuong
Mà ta thử code như sau
SQR(2+3)
thì sẽ thành
2+3*2+3 = 11
chứ không phải
(2+3)*(2+3) = 25
Đã sửa lại theo ý của @Gio