2012-04-25 44 views
8

Tôi không ở máy tính nên không thể kiểm tra điều này vào lúc này nhưng có một số mã để xem xét. Tôi vẫn còn phần nào trong một tâm trí C++ unfortunatley.Phạm vi của typedefs

Vì vậy, khi một typedef được khai báo trong một tệp nguồn C phạm vi của nó là gì? Tôi biết rằng để làm cho các chức năng và các biến chỉ có sẵn trong cùng một đơn vị dịch thuật, bạn cần phải làm cho chúng tĩnh và tôi đã tự hỏi nếu điều này là như nhau cho typedefs?

Trả lời

22

Typedef là các khai báo. Nếu bạn có một typedef trong một tập tin C, không có tập tin C khác sẽ nhận thức được rằng kể từ khi chúng được biên soạn indepedendly của nhau.

Đối với một typedef trong một tiêu đề, tất nhiên nó sẽ được hiển thị từ tất cả các tệp C bao gồm nó.

+0

Cảm ơn, điều đó có ý nghĩa. – Firedragon

5

typedef có cùng phạm vi với các biến thông thường trong C/C++

1

Tôi không biết whats ý nghĩa của câu phức tạp này, nhưng đây là cách C tiêu chuẩn xác định phạm vi typedefs:

Là một trường hợp đặc biệt, một loại tên (mà không phải là một lời tuyên bố của một định danh) được coi là có phạm vi bắt đầu ngay sau địa điểm trong tên loại mà số nhận dạng bị bỏ qua sẽ xuất hiện là nó không bị bỏ qua.

P.S. Ai đó làm ơn giải thích.