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

Đề tài: Khác nhau giữa struct trong c và struct trong c++

  1. #1
    Ngày gia nhập
    05 2010
    Bài viết
    10

    Mặc định Khác nhau giữa struct trong c và struct trong c++

    Mình đang học lập trình c nhưng trong lớp thì ông thầy lâu lâu lại chọt vào hàm, toán tử hoặc cách khai báo của c++ nên làm mình hơi bị rắc rối..các bạn cho mình hỏi sự khác nhau giữa struct trong c và struct trong c++. vì mình đọc sách của thầy ất thì thấy định nghĩa struct trong c như gì nè:
    Code:
    C code:
    struct vidu
    {
        data;
    };
    struct vidu vidu1;
    còn trong lớp thì ông thầy dùng
    Code:
    struct vidu
    {
        data;
    };
    vidu vidu1;
    ổng ko có để chữ struct phía trước..có phải cách khai báo này là của c++ không?

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    554

    Cách để bạn tự kiểm tra là :
    Máy có cài luôn cả C và C++ không ?
    Rồi đem cấu trúc khai báo ở ví dụ 2 vào gõ trong C xem có chạy được không.
    Nếu chạy được thì là không phải mà chạy không được thì bạn nói đúng rồi đấy
    Um Mani Padme Hum...!!

  3. #3
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    C không phải là ngôn ngữ Hướng Đối Tượng, cho nên trình dịch của C chỉ chấp nhận các loại cữ liệu căn bản và các loại dữ liệu đã được định nghĩa qua từ khóa typedef

    Khi bạn khai báo một struct
    struct myStruct { int a; int b }

    Thì myStruct chỉ là một cái tên. Lúc dùng:
    myStruct x; // trình dịch không hiểu cái tên này, vì nó không có trong danh sách tên dữ liệu
    struct myStruct x; // trình dịch lục tìm chỗ dữ liệu loại struct của nó và tìm ra tên này.

    Để khỏi phải mất công gõ mài từ struct, người ta dùng typedef

    Khi bạn khai báo một struct với typedef
    typedef struct { int a; int b } myStruct; // chú ý dấu ;

    Thì trình dịch hiểu là bạn muốn định kiểu. Lúc dùng:
    myStruct x; // trình dịch hiểu cái tên này, vì nó có trong danh sách tên dữ liệu

    C++ là ngôn ngữ LTHDT, cho nên trình dịch chấp nhận tạo tên cho kiểu dữ liệu mỗi lần gặp một định nghĩa mà không cần typedef.

    tb. tại sao C rắc rối như vây?
    bởi vì người viết code C rất thích dùng headers. typedef cho phép định nghĩa cùng tên nhưng cấub trúc khác nhau trong các chương trình.

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

  1. Gửi struct thông qua socket có khác nhau giữa gửi từng field và gửi cả struct?
    Gửi bởi bptvip_pro trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 12-05-2013, 02:35 AM
  2. Bài tập C++ làm sao truy xuất biến của struct lồng trong struct
    Gửi bởi quangnam.tamky trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 10-04-2013, 05:22 PM
  3. 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
  4. Kỹ thuật C++ struct lồng nhau sử dụng ra sao
    Gửi bởi CongGio trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 31-10-2011, 07:02 PM
  5. Struct lồng nhau ??
    Gửi bởi babe trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 20-03-2008, 12:34 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