Mặc dù chúng có thể hữu ích cho bạn như một dạng tài liệu, hệ thống xung quanh các tệp tiêu đề cực kỳ kém hiệu quả.
C được thiết kế sao cho mỗi lần biên dịch xây dựng một mô-đun duy nhất; mỗi tệp nguồn được biên dịch trong một lần chạy riêng của trình biên dịch. Mặt khác, các tệp tiêu đề được đưa vào bước biên dịch đó cho mỗi tệp nguồn tham chiếu chúng.
Điều này có nghĩa là nếu tệp tiêu đề của bạn được bao gồm trong 300 tệp nguồn, thì nó sẽ được phân tích cú pháp và biên dịch lặp đi lặp lại, 300 lần riêng biệt trong khi chương trình của bạn được xây dựng. Điều tương tự chính xác với cùng một kết quả, lặp đi lặp lại. Đây là một sự lãng phí rất lớn thời gian và là một trong những lý do chính khiến các chương trình C và C ++ mất quá nhiều thời gian để xây dựng.
Tất cả các ngôn ngữ hiện đại cố tình tránh sự kém hiệu quả vô lý này. Thay vào đó, thông thường trong các ngôn ngữ được biên dịch, siêu dữ liệu cần thiết được lưu trữ trong đầu ra bản dựng, cho phép tệp được biên dịch hoạt động như một loại tham chiếu tra cứu nhanh mô tả những gì tệp được biên dịch chứa. Tất cả các lợi ích của một tệp tiêu đề, được tạo tự động mà không có công việc bổ sung nào từ phía bạn.
Thay phiên trong các ngôn ngữ được giải thích, mọi mô-đun được tải sẽ ở lại trong bộ nhớ. Tham chiếu hoặc bao gồm hoặc yêu cầu một số thư viện sẽ đọc và biên dịch mã nguồn liên quan, lưu trú cho đến khi chương trình kết thúc. Nếu bạn cũng yêu cầu nó ở nơi khác, không có công việc bổ sung nào vì nó đã được tải.
Trong cả hai trường hợp, bạn có thể "duyệt" dữ liệu được tạo bởi bước này bằng các công cụ của ngôn ngữ. Thông thường, IDE sẽ có một trình duyệt lớp. Và nếu ngôn ngữ có REPL, nó cũng có thể được sử dụng để tạo một bản tóm tắt tài liệu về bất kỳ đối tượng được tải nào.