Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Câu lệnh Typedef trong cấu trúc struct có tác dụng gì?

  1. #1
    Ngày gia nhập
    03 2011
    Bài viết
    65

    Mặc định Câu lệnh Typedef trong cấu trúc struct có tác dụng gì?

    Mình đang học môn Cấu trúc dữ liệu phần danh sách liên kết, ông thầy dùng code trong slide lằng nhằng quá, đọc mãi mà chẳng hiểu gì cả Bạn nào có thể phân tích đoạn code dưới này giúp mình với


    C++ Code:
    1. typedef struct nodet {
    2.                 elem data; // element_type
    3.                 struct nodet *next;
    4.             } node;
    5.  
    6. typedef  node  *nodeptr;
    7.  
    8. typedef struct {
    9.             nodeptr head, pos, rear;
    10.             int count;
    11.         } list;
    ---------------

    Theo mình biết, nếu viết như sau (không có typedef): thì tức là mình định nghĩa 1 kiểu dữ liệu mới có tên là nodet, bao gồm 2 field. Sau đó khai báo luôn 1 biến có kiểu nodet, tên biến đó là node

    C++ Code:
    1. struct nodet {
    2.                 elem data; // element_type
    3.                 struct nodet *next;
    4.             } node;

    Nhưng nếu chêm thêm câu typedef vào dòng lệnh trên cho nó trở thành dưới đây. Thì hình như cái biến node nó không còn là biến nữa thì phải, hình như nó trở thành 1 kiểu dữ liệu cũng gồm 2 field giống kiểu nodet. Vậy khi đó 2 kiểu nodetnode có gì khác nhau không?

    C++ Code:
    1. typedef struct nodet {
    2.                 elem data; // element_type
    3.                 struct nodet *next;
    4.             } node;

  2. #2
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà Nôi
    Bài viết
    462

    Dùng typedef là đặt tên lại cho kiểu dữ liệu struct nodet.
    Nếu ntn
    C++ Code:
    1. struct nodet {
    2.                 elem data; // element_type
    3.                 struct nodet *next;
    4.             } node;
    Khi khai báo 1 biến thuôc kiểu nodet thì : struct nodet a;

    Nếu ntn
    C++ Code:
    1. typedef struct nodet {
    2.                 elem data; // element_type
    3.                 struct nodet *next;
    4.             } node;
    Khai báo biến chỉ cần node a;

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    typedef là định nghĩa một kiểu mới, khi dùng typedef thì mới dùng sizeof(tenkieu) được.
    Còn khi không dùng thì bắt buộc phải dùng biến của struct đó để dùng với sizeof.

    Cái này dựa theo kinh nghiệm ngày trước làm việc, còn giờ thì mình không rõ nữa.

    @dehin: điều bạn nói có lẽ trong C++ cả hai đều được

  4. #4
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà Nội
    Bài viết
    381

    skype: hvphu2010
    Yahoo: hvphu2010
    Sdt: 0129 609 4567

  5. #5
    Ngày gia nhập
    01 2011
    Nơi ở
    -Mountain-
    Bài viết
    768

    Trích dẫn Nguyên bản được gửi bởi trungkien45 Xem bài viết
    khi dùng typedef thì mới dùng sizeof(tenkieu) được.
    Câu này thì lạ đó nha !!!
    Hướng dẫn C++: https://www.youtube.com/watch?v=BwLodoQdoY4&list=PL1c9Uxlo-mplJDRGdONNupgo5OCBTyGGn

  6. #6
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Mặc định Câu lệnh Typedef trong cấu trúc struct có tác dụng gì?

    Trích dẫn Nguyên bản được gửi bởi beautifulsoul84hung Xem bài viết
    Câu này thì lạ đó nha !!!
    Cái này ngày trước mình làm với TC không được, chưa thử với các IDE khác.

  7. #7
    Ngày gia nhập
    10 2009
    Nơi ở
    Close All
    Bài viết
    993

    Mình xin góp ý thế này:
    Trong C++ struct tương tự class .Chỉ khác là mặc định phạm vi truy cập là public . Còn class là private.
    Nên trong C++:
    Viết
    C++ Code:
    1.  struct node{};
    2. node node=new node();
    3. .......
    là đc rồi.
    Còn cách viết
    C Code:
    1.  typedef struct node{}nodet;
    2. struct node n;
    3. nodet nodet;
    4. .......
    là cú pháp ,cách viết của C, bởi vì các IDE bây giờ có complier C luôn nên nó vẫn chấp nhận cách viết này.
    Trong C:
    typedef là tạo ra 1 tên khác cho kiểu dữ liêu,1 alias mới chứ không phải định nghĩa 1 kiểu dữ liệu mới nha

Các đề tài tương tự

  1. Lập trình C++ Giúp đỡ về điểm khác nhau giữa struct và typedef struct
    Gửi bởi huydang2410 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 27-02-2013, 10:30 AM
  2. typedef struct có ý nghĩa gì?
    Gửi bởi F-18 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 26-12-2011, 04:58 PM
  3. Lập trình C Lỗi con trỏ trong typedef struct....
    Gửi bởi lytieubinh_269 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 19-11-2011, 12:27 AM
  4. Cấu trúc Struct trong C
    Gửi bởi minhtuan.a0 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 16-10-2011, 01:25 PM
  5. Lập trình C cách dùng câu trúc dữ liệu (typedef) struct để viết chuơng trình
    Gửi bởi laimotlanuabi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 03-05-2011, 06:46 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn