Giải thích đơn giản nhất có thể là chương trình của bạn gọi hoặc sử dụng nhiều chức năng có mã không thuộc chính chương trình của bạn. Ví dụ: nếu bạn viết "printf" trong mã của bạn để in một cái gì đó, trình biên dịch không biết phải làm gì với cuộc gọi đó.
stdio.h là nơi chứa thông tin cho printf đó.
Cập nhật:
Thay các nguyên mẫu hàm printf (tên, kiểu trả về và các thông số) cư trú tại stdio.h. Đó là tất cả các yêu cầu trong giai đoạn biên dịch. Mã printf thực tế được bao gồm trong pha liên kết, nó xuất hiện sau khi biên dịch.
Tuyên bố bao gồm về cơ bản sẽ chèn tất cả các mẫu thử chức năng TRƯỚC KHI biên dịch thực tế. Do đó tên tiền xử lý.
Cập nhật 2:
Kể từ khi câu hỏi tập trung vào bao gồm tuyên bố (và OP cũng hỏi về cách viết định nghĩa các chức năng chính mình, một khía cạnh quan trọng là nếu nó được viết như thế (chú ý dấu ngoặc góc)
#include <stdio.h>
các preprocessor giả định, nó là một tiêu đề thư viện tiêu chuẩn và trông trong các thư mục hệ thống đầu tiên nơi trình biên dịch đã được cài đặt.
Nếu thay vì một pro ngữ pháp định nghĩa một hàm của mình và đặt file .h trong thư mục làm việc hiện tại, ông sẽ sử dụng (lưu ý có dấu ngoặc kép)
#include "stdio.h"
Following minh họa nó và hành vi này là xách tay trên tất cả các nền tảng.
http://en.wikipedia.org/wiki/C_preprocessor –
@ Nat95 SO không phải là Diễn đàn nơi bạn chỉ sjuld trình bày giải pháp, SO muốn truyền bá kiến thức. Vì vậy, câu trả lời trong biểu mẫu của một liên kết duy nhất không được chào đón để ngăn xếp tràn. Một câu trả lời nên được viết bởi một số người BIẾT câu trả lời. và có thể giải thích cho bạn.vì vậy, tránh yêu cầu liên kết hoặc tài nguyên ngoài trang web. – dhein
ok! tôi không biết điều này! thanks @Zaibis – yaylitzis