C語言從頭學05——頭文件及庫文件

? ? ? ?我們寫"Hello World!"程序時,一上來先寫了一句代碼:

#include <stdio.h>

? ? ? ?我們看上面這條代碼,前面有個"#"號后邊沒有";"號,這樣的代碼不是普通的C語言代碼,它屬于預處理命令。這條代碼的含義是包含"stdio.h"這個頭文件。
? ? ? ?我們編寫C語言程序,程序要用到的功能肯定不都是我們從頭寫的,那樣太麻煩了。許多功能C語言已經自帶了,我們需要什么功能去調用就行了。例如printf()函數就是C語言自帶的,我們直接使用即可。C語言自帶的這些功能存放在哪里呢?它們都存放在標準庫中。標準庫是由許多的文件組成的,這些文件有不同功能的定義,把某一類功能打包到一個文件中我們就稱這個文件為xx頭文件、庫文件。比如printf()這個函數就定義stdio.h這個頭文件中,編程中要想使用printf()先包含這個頭文件。頭文件的后綴是".h"。
? ? ? ?我們把#include <xx.h>命令稱為包含xx頭文件,等后邊我們學習"預處理器"相關內容再往細處理解include命令。如果我們在編程中有報錯"未定義標識符",首先檢查是否拼寫錯了,如不是就要檢查是否包含了相關的頭文件。我們自己也可以寫自己的頭文件,使用時把這個頭文件包含進來,就不用重新敲代碼了。
? ? ?? 實際上,頭文件中只是函數的聲明,而函數的實現在庫文件中。 在C語言中,頭文件是可讀的,而庫文件是以二進制編碼形式存儲的。對于C語言自身的頭文件和庫文件,當我們使用某函數時只要我們在代碼中包含了相關的頭文件后,編譯器會自動通過頭文件找到庫文件,把需要的內容編譯到我們的程序中,不需要我們再考慮。
? ? ? ?而對于某些與C語言共享的頭文件和庫文件,我們在使用時,不僅要包含頭文件,還要導入相關的庫文件。比如,當在程序中想要使用背景音樂時就是這樣,看例子:

  #include "mmsystem.h" //包含與音樂相關的頭文件#pragma comment(lib,"winmm.lib") //導入庫文件

? ? ? ?提醒注意,包含系統提供的頭文件用一對尖括號括起文件名,包含我們自己寫的頭文件或其它外來頭文件時要使用雙引號引起來,這是區別。stdio.h這個頭文件幾乎包含初學者用到的所有功能,所以開始階段只要包含了這個頭文件就可以進行我們的學習了。其它頭文件隨著學習的深入一點點掌握。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11516.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11516.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11516.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

代碼隨想錄算法訓練營第六天| 242. 有效的字母異位詞、349. 兩個數組的交集、202. 快樂數、1. 兩數之和

哈希表理論基礎 [LeetCode] 242. 有效的字母異位詞 [LeetCode] 242. 有效的字母異位詞 文章解釋 [LeetCode] 242. 有效的字母異位詞 視頻解釋 題目: 給定兩個字符串 s 和 t &#xff0c;編寫一個函數來判斷 t 是否是 s 的字母異位詞。 注意&#xff1a;若 s 和 t 中每個字符出…

JavaEE技術之SpringCloud(Nacos注冊中心、Nacos配置中心、Sentinel實現熔斷與限流)

文章目錄 SpringCloud Alibaba1、簡介1.1 背景1.2 Nacos主要功能1.3 Nacos和SpringBoot、SpringCloud版本選擇 2、Nacos注冊中心2.1 案例準備2.2 Nacos注冊中心下載啟動2.2.1 下載2.2.2 解壓啟動2.2.3 nacos-server訪問測試 2.3 nacos注冊中心客戶端整合2.3.1 訂單服務整合naco…

YTU 3166 共享單車 DFS 記憶化搜索

問題 D: 共享單車 題目描述 共享單車走進煙臺&#xff0c;小明決定嘗試。小明啟動共享單車 App&#xff0c;輕松地找到附近的單車。那么問題來了&#xff0c;到最近的那輛單車&#xff0c;小明大約要走多少米呢&#xff1f; 現在簡化問題。將地圖設定成一個由 100100 米的像…

【UE】仿原神實現無限道路延伸的開場效果

目錄 效果 步驟 一、無限生成磚塊 二、制作門 三、停止移動并生成門 四、進入門 效果 步驟 一、無限生成磚塊 1. 新建一個Basic關卡&#xff0c;再新建一個Pawn類&#xff0c;這里命名為“BP_MyPawn” 打開“BP_MyPawn”&#xff0c;添加一個膠囊體碰撞組件和一個攝像…

工器具管理(基于若依)

文章目錄 前言一、工器具管理項目總覽 二、入庫功能1. 前端1.1 界面展示1.2 具體操作實現1.3 js文件 2. 后端2.1 工器具信息回顯2.2 工器具入庫 三、領用功能1. 前端1.1 界面展示1.2 具體實現操作1.3 js文件 2. 后端2.1 工器具信息回顯2.2 工器具領用 遇到的問題1. 同一頁面展示…

pat乙1033-舊鍵盤打字

1測試點2&#xff1a; 輸入的字符串如果為空&#xff0c;要用getline(cin,s)&#xff0c;而不是cin>>s&#xff0c;否則程序做不了 2題目說的如果上鍵壞了那大寫字母打印不了&#xff0c;不是大寫轉小寫打印啦&#xff0c;認真讀題 3兩個for循環長這樣&#xff0c;break…

基于springboot+vue的自習室管理和預約系統(全套)

一、系統架構 前端&#xff1a;vue | element-ui | html 后端&#xff1a;springboot | mybatis-plus 環境&#xff1a;jdk1.8 | mysql | maven | nodejs 二、代碼及數據庫 三、功能介紹 01. web端-首頁1 02. web端-首頁2 03. web端-注冊 04. web端-登錄 05. w…

牛客Linux高并發服務器開發學習第六天

目錄相關函數 學習進度&#xff1a; Linux系統編程入門 06&#xff1a;59&#xff1a;42

Apollo9.0 Control模塊算法源碼學習

參考資料 Apollo控制算法_嗶哩嗶哩_bilibili

Python自動化測試 | 如何使用Robot Framework進行自動化測試?

你還在手動測試&#xff1f;不妨了解一下更高效、準確且簡單的測試方法——使用Python的Robot Framework進行自動化測試。 什么是Robot Framework&#xff1f; Robot Framework是一款開源的Python自動化測試框架&#xff0c;它基于關鍵字驅動的思想&#xff0c;具有易讀、易擴…

每日一題 城市群的數量

題目解析 城市群數量_牛客題霸_牛客網 當解決這個問題時&#xff0c;首先需要理解題目要求。題目中給出了一個城市之間的鄰接矩陣&#xff0c;矩陣中的元素表示城市之間是否直接相連。如果兩個城市直接相連&#xff0c;或者通過其他城市間接相連&#xff0c;它們就屬于同一個城…

算法學習筆記(匈牙利算法)

匈牙利算法可以求解二分圖的最大匹配問題&#xff08;二分圖&#xff1a;如果無向圖 G ( V , E ) G (V, E) G(V,E)的所有點可以分為兩個集合 V 1 、 V 2 V_1、V_2 V1?、V2?&#xff0c;所有的邊都在 V 1 V_1 V1?和 V 2 V_2 V2?之間&#xff0c;而 V 1 V_1 V1?或 V 2 V_2…

深入理解Python的類,實例和type函數

問題起源&#xff1a; class t():pass s1 t() s2 type("Student2",(),{}) isinstance(s1, type), isinstance(s2, type)為什么第一個是false&#xff0c;第二個是true呢 根因定位&#xff1a; 在Python中&#xff0c;一切皆對象&#xff0c;類是對象&#xff0c…

nacos在沒有指定數據源的情況下默認使用什么數據庫?

在沒有特別指定數據源的情況下&#xff0c;Nacos 默認使用內嵌的數據庫 Derby 來存儲其數據。Derby 是一個輕量級的、基于 Java 的數據庫管理系統&#xff0c;適合于開發和測試環境&#xff0c;因為它簡單易部署且無需額外的數據庫服務器。然而&#xff0c;對于生產環境&#x…

使用ORM快速獲取業務對象列表

通常在實際開發中&#xff0c;業務對象的信息是需要來自多個數據表的。 我們如果想要獲取這個業務對象&#xff0c;就要先查詢數據表&#xff0c;再把查詢到的數據依次循環&#xff0c;組合轉換封裝成業務要使用的對象類型列表。 如果使用了ORM&#xff0c;那么這個過程就可以簡…

Stability AI 推出 Stable Artisan,終于可以在Discord上使用Stable Diffusion了!

Stable Diffusion 社區最常見的要求之一是能夠直接在 Discord 上使用他們的模型。近期&#xff0c;Stability AI 推出 Stable Artisan&#xff0c;這個需求終于被實現了。 Stable Artisan 支持在 Discord 上生成媒體&#xff0c;由 Stability AI 的尖端圖像和視頻模型 Stable D…

基于Springboot的實習生管理系統(有報告)。Javaee項目,springboot項目。

演示視頻&#xff1a; 基于Springboot的實習生管理系統&#xff08;有報告&#xff09;。Javaee項目&#xff0c;springboot項目。 項目介紹&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三層體系結構&a…

mysql group by使用方法實例講解

MySQL中GROUP BY語句用于對某個或某些字段查詢分組&#xff0c;并返回重復記錄的第一條&#xff0c;本文章通過實例向大家介紹mysql group by使用方法和需要注意的地方&#xff0c;感興趣的朋友可以參考一下。 現在有這樣一個數據表book idfirst_namelast_namecityage1JasonM…

知乎知+廣告推廣該如何做?怎么收費?

知乎作為一個匯聚高質量用戶群體的知識分享平臺&#xff0c;成為了眾多品牌和產品推廣的優選之地。特別是知乎的“知”廣告推廣服務&#xff0c;以其精準定向、內容原生的特點&#xff0c;深受廣告主青睞。 一、知乎知廣告推廣基礎 1. 什么是知乎知&#xff1f; 知是知乎官方…

C++初階學習第七彈——探索STL奧秘(二)——string的模擬實現

標準庫中的string&#xff1a;C初階學習第六彈——string&#xff08;1&#xff09;——標準庫中的string類-CSDN博客 前言&#xff1a; 在前面我們已經學習了如何使用標準庫中的string類&#xff0c;但作為一個合格的程序員&#xff0c;我們不僅要會用&#xff0c;還要知道如…