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.
Sự khác nhau giữa typedef và define?
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
À, 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 ạ.
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.