JavaScript is required

Trong các khai báo sau, khai báo nào không đúng:

A.

struct Date{int ngay, thang, nam;};

B.

struct { int ngay, thang, nam;} D1,D2;

C.

typedef struct { int ngay, thang, nam;} Date;

D.

struct Date { long int ngay:7; long int thang:6; long int nam:5; };

Trả lời:

Đáp án đúng: D


Đáp án A: Khai báo này đúng. Nó định nghĩa một cấu trúc tên là Date với các thành viên ngay, thang, nam kiểu int.
Đáp án B: Khai báo này đúng. Nó định nghĩa một cấu trúc không tên và đồng thời khai báo hai biến D1, D2 có kiểu của cấu trúc đó.
Đáp án C: Khai báo này đúng. Nó sử dụng typedef để định nghĩa một kiểu dữ liệu mới Date là một cấu trúc chứa các thành viên ngay, thang, nam kiểu int.
Đáp án D: Khai báo này sai. Trong C/C++, không được phép có khoảng trắng giữa tên cấu trúc (Date) và dấu mở ngoặc nhọn ({). Ngoài ra, việc sử dụng bit field (ví dụ: long int ngay:7;) trong định nghĩa cấu trúc Date là hợp lệ, tuy nhiên cách viết `struct Date { long int ngay:7; long int thang:6; long int nam:5; };` là đúng cú pháp.

Câu hỏi liên quan