dùng #define để định nghĩa macro, khi chương trình chạy thì nó sẽ thay FOR(i,0,n) bằng cái for(int i = 0; i < n ; i++)
giúp cho việc lập trình được nhanh hơn do phải gõ ít hơn, có thể dùng để định nghĩa macro tìm số lớn, số bé, hằng số, v.v Xem thêm các ví dụ ở đây và đây
Ví dụ khác #define PRINT10(a) for(int i = 0; i < 10; i++ ) printf("%d ", a);
giờ chỉ cần gõ PRINT10(100) thì nó in ra 10 số 100 trên một hàng mà không cần viết hết câu lệnh for ra.
Theo mình nghỉ nếu không hiểu rỏ về define thì không nên động đến nó kẻo lại lại dính mấy lỗi “trên trời rơi xuống” ví dụ như #define MSG "something here";. Nó như con dao 2 lưỡi ấy, không biết dùng là dể đứt tay lắm
bạn thắc mắc vậy cũng đúng vì mình thấy tham số FOR(i,a,b) trong đó i là không cần thiết chỉ cần FOR(a,b) for(int i = a, i < b; i++) là được , như vậy nó sẽ lấy tham số trong cái macro FOR(a,b) thay a b vào chỗ a,b trong vòng for.
không phải for mà là FOR #define FOR(i;a;b) tức là định nghĩa đoạn lệnh FOR gồm 3 biến cục bộ i, a, b, khi được gọi trong chương trình thì sẽ được thay bằng 3 biến toàn cục tương ứng (tức là nếu gọi FOR(i;0;n) thì sẽ chạy khối lệnh được định nghĩa trong FOR với i=i; a=0; b=n
và FOR(i;a;b) được định nghĩa là for (int i = a; i < b; i ++)
Ý bạn là như thế nào? Bạn có thể nói rõ hơn không?
bạn hiểu define là gì không đã
dùng
#define
để định nghĩa macro, khi chương trình chạy thì nó sẽ thayFOR(i,0,n) bằng cái for(int i = 0; i < n ; i++)
giúp cho việc lập trình được nhanh hơn do phải gõ ít hơn, có thể dùng để định nghĩa macro tìm số lớn, số bé, hằng số, v.v Xem thêm các ví dụ ở đây và đây
Ví dụ khác
#define PRINT10(a) for(int i = 0; i < 10; i++ ) printf("%d ", a);
giờ chỉ cần gõ PRINT10(100) thì nó in ra 10 số 100 trên một hàng mà không cần viết hết câu lệnh for ra.
Đây là một cách để hiểu được các từ khoá trong các ngôn ngữ:
https://translate.google.com/#en/vi/define
Theo mình nghỉ nếu không hiểu rỏ về
define
thì không nên động đến nó kẻo lại lại dính mấy lỗi “trên trời rơi xuống” ví dụ như#define MSG "something here";
. Nó như con dao 2 lưỡi ấy, không biết dùng là dể đứt tay lắmBạn xem video này của anh Đạt chưa?
e xem r, e k hiểu sao lại khai báo đc kiểu define for…
và e k hiểu chỗ for (i;0;n) là gì
sau khi đọc comment của @banhmisg9509 thì e đã hiểu chỗ for(i;0;n) rồi ạ.
E cũng biết define là gì rồi ạ.
Giờ e còn chưa rõ phần #define for(i;a;b) for(int i=a;i<b;i++) nữa ạ.
bạn thắc mắc vậy cũng đúng vì mình thấy tham số FOR(i,a,b) trong đó i là không cần thiết chỉ cần
FOR(a,b) for(int i = a, i < b; i++)
là được , như vậy nó sẽ lấy tham số trong cái macro FOR(a,b) thay a b vào chỗ a,b trong vòng for.không phải
for
mà làFOR
#define FOR(i;a;b)
tức là định nghĩa đoạn lệnh FOR gồm 3 biến cục bộ i, a, b, khi được gọi trong chương trình thì sẽ được thay bằng 3 biến toàn cục tương ứng (tức là nếu gọi FOR(i;0;n) thì sẽ chạy khối lệnh được định nghĩa trong FOR với i=i; a=0; b=nvà
FOR(i;a;b)
được định nghĩa làfor (int i = a; i < b; i ++)
Vậy tại sao e làm như này lại k đc ạ ?
Vì phân cách tham số trong FOR là dấu
","
chứ không phải dấu";"
ok rồi ạ thanks anh