Hãy xem xét hai chức năng:
extern int extern_sqr(int i) { return i * i; }
static int static_dbl(int i) { return i * 2; }
Sau đó, những người tham chiếu đến extern_sqr
sẽ đề cập đến chức năng đó. Điều này trái với liên kết static
, trong đó chỉ những người từ bên trong "đơn vị dịch" (gần tệp được xác định) có thể truy cập chức năng static_dbl
.
Nó chỉ ra rằng, extern
được ngụ ý theo mặc định trong c. Vì vậy, bạn sẽ nhận được các hành vi tương tự, nếu bạn đã viết:
int extern_sqr(int i) { return i * i; }
Mới hơn tiêu chuẩn C vẫn đòi hỏi một "tuyên bố chức năng" như vậy, thường là trong một tập tin tiêu đề ở đâu đó, bạn sẽ gặp phải:
int extern_sqr(int i); // Note: 'i' is optional
nào nói "ở đâu đó, ở một số đơn vị dịch thuật khác, tôi có một chức năng gọi là extern_sqr
.
Logic này cũng áp dụng cho các biến.
Xin lỗi, bạn có quen với c? Theo tôi, K & R không phải là một cuốn sách giới thiệu phù hợp cho người mới. – yehnan
Tuy nhiên, làm cho nỗ lực để hiểu K & R sẽ cung cấp cho bạn một nắm bắt thực sự tốt của C. Tôi nói giữ nó. –
Tôi không phản đối câu hỏi. Tôi để ý rằng ashma đã hỏi vài câu. Chân thành mong anh ta có thể sử dụng một cuốn sách phù hợp hơn cho anh ta/cô ấy. – yehnan