C語言關(guān)鍵字-創(chuàng)新互聯(lián)

C語言關(guān)鍵字extern和static,解決C語言中的幾個為什么

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都做網(wǎng)站、郊區(qū)網(wǎng)絡(luò)推廣、微信小程序開發(fā)、郊區(qū)網(wǎng)絡(luò)營銷、郊區(qū)企業(yè)策劃、郊區(qū)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供郊區(qū)建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:muchs.cn文章目錄
    • **C語言關(guān)鍵字extern和static,解決C語言中的幾個為什么**
  • 前言
  • 一、頭文件
    • (1)C語言為什么要誕生頭文件
    • (2)頭文件一般放什么內(nèi)容
  • 二、extern關(guān)鍵字
  • 三、static關(guān)鍵字
  • 四、三個為什么

前言

extern 和 static在C語言的學習中尤為重要,所以我們有必要掌握。

一、頭文件 (1)C語言為什么要誕生頭文件

在學習C語言的時候,當我們需要寫一個比較大的項目的代碼的時候,我們常常需要用到頭文件,即以.h結(jié)尾的文件配合起來寫,那為什么需要有頭文件呢?我就單單的一個test.c文件就不能寫出來大的項目了嗎?從理論上來講,確實可以只通過一個test.c文件寫代碼,但是單純的使用源文件,組織項目結(jié)構(gòu)的時候,項目越大越復雜的時候,維護成本就越高!頭文件的出現(xiàn)大大降低了大型項目的維護成本,因為如果你在test.c文件使用了某個值100遍,但是你現(xiàn)在需要修改這個值,如果沒有頭文件,你就需要把這100個值都同時改掉,但是把它放到頭文件里面,再再test.c包含頭文件,那么當需要修改這個值的時候只需要在頭文件修改這個值就能把test.c里面的所有這個值都改掉,大大降低了維護成本。

(2)頭文件一般放什么內(nèi)容

1、C頭文件
2、所有變量的聲明
3、所有函數(shù)的聲明
4、#define , typedef , struct等等。

二、extern關(guān)鍵字

1、
聲明變量時不能設(shè)置初始值,例如extern int val=0 這種寫法是錯誤的,因為聲明的時候沒有開辟空間,所以0不能賦值給val。
2、
變量的聲明必須帶上extern,因為如果寫成 int val;編譯器可能把它看成是定義,而頭文件不能放定義,所以這種具有二義性的代碼,我們必須去避免。
3、
函數(shù)的聲明建議帶上extern,雖然編譯器看這個是函數(shù)的聲明還是定義是看函數(shù)體是否有內(nèi)容,但是當你帶上extern的時候,代碼的可讀性就上來了,別人或者自己一眼就能看出這個是函數(shù)的定義。

三、static關(guān)鍵字

1、全局變量可以跨文件訪問嗎?

可以。

2、函數(shù)可以跨文件訪問嗎?

可以。

3、在具體的應用場景當中,有沒有可能,我們不想讓全局變量或者函數(shù)跨文件訪問,只在本文件內(nèi)部訪問?

答案是肯定的。

(1)static修飾全局變量,該變量只在本文件內(nèi)被訪問,不能被外部其他文件直接訪問。
(2)static修飾函數(shù), 該函數(shù)只在本文件內(nèi)被訪問,不能被外部其他文件直接訪問。
(3)static修飾局部變量,更改局部變量的生命周期,作用域不變。

四、三個為什么

1、為什么全局變量和函數(shù)可以跨文件訪問?

因為有一定規(guī)模的項目,一定是多文件的,多個文件之間,后續(xù)一定要進行數(shù)據(jù)“交互”。代碼是需要模塊化的,不可能全部代碼都放在test.c文件中的,所以如果不能跨文件,也就說明小組寫的代碼不能通用,那交互成本就會變得很高。

2、為什么是局部變量?為什么局部變量被static修飾后變成了全局生命周期??
(1)、因為局部變量是在棧區(qū)開辟內(nèi)存空間的,棧是動態(tài)變化的,所以具有臨時性。
(2)、局部變量被static修飾之后變成了全局的生命周期的根本原因是它的存儲位置發(fā)生了變化,由棧區(qū)到靜態(tài)數(shù)據(jù)區(qū),所以具有了全局生命周期,但是作用域還是不變的。
在這里插入圖片描述

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

分享文章:C語言關(guān)鍵字-創(chuàng)新互聯(lián)
鏈接地址:http://muchs.cn/article36/dejesg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、微信小程序、商城網(wǎng)站、小程序開發(fā)網(wǎng)站營銷、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)