C語言本身并不提供輸入輸出語句,輸入和輸出操作是由函數來實現的。
在C標準函數庫中提供了一些輸入輸出函數,例如,printf函數和scanf函數。
在使用他們時,千萬不要誤認為他們是C語言提供的“輸入輸出語句”。
printf和scanf不是C語言的關鍵字,而只是函數的名字。
C提供的函數以庫的形式存放在系統中,它們不是C語言文本中的組成部分。
不把輸入輸出作為C語言提供的語句的目的是使C語言編譯系統簡單,因為將語句翻譯成二進制的指令是在編譯階段完成的,沒有輸入輸出語句可以避免在編譯階段處理與硬件有關的問題,可以使編譯系統簡化,而且通用性強,可移植性好,對各種型號的計算機都適用,便于在各種計算機上實現。
各種版本的C語言函數庫是各計算機廠商針對某一類型計算機的情況編寫的,并且已編譯成目標文件(.obj文件)。
它們在連接階段與源程序經編譯而得到的目標文件相連接,生成一個可執行的目標程序。
如果在源程序中有printf函數,在編譯時并不把它翻譯成目標指令,而是在執行階段調用已被連接的函數庫中的printf函數。