Sự khác nhau giữa typedef và define?

Cho em hỏi hai thằng typedef và thằng define nó khác nhau chỗ nào ạ. Mấy bác giúp e chi tiết xíu ạ, e muốn hiểu cho rõ tí. Cảm ơn các bác nhiều.

bạn đã thử tìm kiếm và thử đọc vài bài viết chưa?

3 Likes

em đã đọc rồi ạ, và em muốn hỏi xem là có kiến thức thêm thôi ạ

mình chưa cần click vào bất kì link nào mà ngay từ kết quả preview đã thấy câu trả lời, mình không hiểu bạn còn mong đợi gì ngoài những cái như trên

3 Likes

À, thực ra em muốn biết là thằng trình biên dịch nó có thay thế tất cả chỗ có tên được định nghĩa bởi typedef bằng 1 cái tên mới giống thằng define đc thằng tiền xử lí làm vậy hay không thôi ạ. Và em cũng muốn biết là nếu nó không thay giống thằng define thì nó sẽ làm như nào ạ.

1 Like

Vì bạn nói đã đọc hết các link và hiểu sự khác nhau. Mình chỉ góp ý cho những thứ bạn mơ hồ.

typedef thay thế tên user định nghĩa bằng “tên cũ”. Ví dụ:

typedef int mylove;
mylove a = 10;

Thực chất ở đây chỉ là dùng int thôi.
Việc dùng typedef hay define cho “kiểu dữ liệu” sẽ gặp sự khác nhau khi có * hay không. Các bài viết về sự khác nhau đã có ví dụ về chuyện này.

Việc compiler “làm như thế nào” liên quan tới kiến thức về compiler. Cụ thể thế nào mình cũng không nắm rõ. Nhưng từ việc sử dụng và lỗi compiler liên quan tới vị trí đặt typedef thì chắc chắn nó sẽ không có giai đoạn tiền xử lý kiểu find and replace giống như preprocessor , mà là build cùng lúc với quá trình tạo syntax tree.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?