01/10/2018, 01:09

Giúp tìm lỗi #define

mn giúp em cách khắc phục lỗi này với ạ
many thanks

X viết 03:24 ngày 01/10/2018

Sao em không viết ra một hàm hẳn hoi mà lại dùng kiểu define macros này?
Tham khảo một số topic liên quan:
https://daynhauhoc.com/t/mot-so-cach-define-dac-biet-trong-c-c/6731

vậy ? là nếu , : là ngược lại ???

Trần Hoàn viết 03:23 ngày 01/10/2018

trong bài viết mình thấy 3 lỗi:

  1. illegal escape sequence => dấu “” được sử dụng không đúng cách
  2. Thiếu dấu “;” khi gọi NGUOI_TRUONG_THANH(14)
  3. Tiếng anh - “many thank”

Để khắc phục, bạn chỉ cần bỏ những thứ thừa. và học thêm tiếng Anh thì mới mong học tốt lập trình.

Khoa NTA viết 03:23 ngày 01/10/2018

Không thêm dấu “;” khi gọi NGUOI_TRUONG_THANH thì vẫn biên dịch thành công nha bạn (mặc dù như vậy là code rất xấu). Mình thấy define đơn giản thay thế macro bằng code phía sau nên nếu không có “;” cho câu lệnh cuối cùng khi define 1 macro thì khi gọi mới phải đặt “;”.

#include <stdio.h>

#define NTT(t) printf("macro NTT : "); if(t>=18) printf("Da truong thanh.\n"); else printf("Thieu nien.\n");
#define NTT2(t)                       \
    printf("macro NTT2: ");           \
    if(t>18)                          \
        printf("Da truong thanh.\n"); \
    else                              \
        printf("Thieu nien.\n");    

int
main(int argc, char **argv)
{
    NTT(14)
    NTT(23);
    NTT2(30)
    return 0;
}

Output:

macro NTT : Thieu nien.
macro NTT : Da truong thanh.
macro NTT2: Da truong thanh.

Bài liên quan
0