2012-02-20 26 views
8

Tôi muốn biết sự khác biệt giữa vòng loại và công cụ sửa đổi. Một số sách đề xuất rằng volatile là một công cụ sửa đổi, các sách khác coi đó là bộ định tính.Sự khác biệt giữa một vòng loại và một công cụ sửa đổi trong C là gì?

Vì vậy, chính xác là công cụ sửa đổi và vòng loại, đối với biến là gì?

+0

Câu hỏi thưởng: "Trình khai báo khai báo" ở đâu? – Kos

+1

@Kos: "một bộ khai báo" là một danh mục tổng quát hơn. Thực ra không có thứ gì như "khai báo-specifier" số ít trong ngữ pháp C, nhưng "khai báo-specifiers" là danh sách các specifier class storage ('typedef',' static', 'extern',' auto', 'register'), loại vòng loại ('const',' limits', 'volatile'), hàm specifiers (' inline') và gõ tên (không chính thức) nói cái gì được định nghĩa thực sự là gì. –

+0

Hãy hỏi tác giả của cuốn sách, họ đã tạo thuật ngữ "công cụ sửa đổi" ra khỏi màu xanh lam. Không có thuật ngữ như vậy. – Lundin

Trả lời

6

Trong thuật ngữ C volatilevòng loại.

const, restrict, volatile và C11 _Atomic là loại vòng loại C.

Thuật ngữ C không sử dụng từ công cụ sửa đổi khi khai báo đối tượng.

+0

Làm thế nào để bạn tham gia vào các lớp lưu trữ, chúng cũng có trong vòng loại? –

+0

'static' và' extern' là các bộ định danh lớp lưu trữ, không phải là các vòng loại. Một khác biệt là chúng chỉ được sử dụng trong các định nghĩa, trong khi các vòng loại có thể được sử dụng trong các khai báo. – ugoren

+0

@ugoren: tuy nhiên, không có sự khác biệt nào trong cú pháp. Nó chỉ là các phần khác nhau của trạng thái chuẩn mà hầu hết các khai báo đối tượng với một bộ định nghĩa lớp lưu trữ là một định nghĩa, một cách hoặc anther (vì nó là tự động, hoặc vì nó là định nghĩa dự kiến, hoặc vì nó là định nghĩa bên ngoài, hoặc có thể các loại định nghĩa khác mà tôi chưa từng nghĩ đến). –

Các vấn đề liên quan