Từ External Variables Wiki:Tuyên bố hoặc Định nghĩa trong C
Nếu không có từ khóa extern hay một giá trị khởi có mặt, báo cáo kết quả có thể là một tuyên bố hoặc một định nghĩa. Trình biên dịch là để phân tích các mô-đun của chương trình và quyết định.
Tôi đã không thể nắm bắt đầy đủ ý nghĩa của tuyên bố này liên quan đến C. Ví dụ, nó ngụ ý rằng:
int i;
không nhất thiết phải là một tuyên bố (như tôi đã được giả định cho đến khi bây giờ), nhưng có thể là một định nghĩa là tốt (theo định nghĩa của Định nghĩa & Tuyên bố trên cùng một trang web, không có ý định chơi chữ)?
Tóm lại, là tuyên bố trên: a. chỉ là một tuyên bố, hoặc b. khai báo + định nghĩa?
tham khảo: Variable declaration and definition
Tóm tắt các câu trả lời nhận được:
Declaration Definition Tentative Definition Initialized int i; (inside a block) Yes Yes No No int i=5; (inside a block) Yes Yes No Yes(to 5) int i; (otherwise) Yes No Yes Yes(to 0) extern int i; Yes No No No All definitions are declarations but not vice-versa.
Tuy nhiên, bạn nên nhớ rằng không phải tất cả các khai báo đều là định nghĩa. –