1. 程式人生 > >C語言支援的四種變數儲存型別

C語言支援的四種變數儲存型別

一)auto:auto稱為自動變數(區域性變數)。區域性變數是指在函式內部說明的變數(有時也稱為自動變數)。所有的非全程變數都被認為是區域性變數,所以auto實際上從來不用。區域性變數在函式呼叫時自動產生,但不會自動初始化,隨函式呼叫的結束,這個變數也就自動消失了。下次呼叫此函式時再自動產生,還要再賦值,退出時又自動消失。
二)static:static稱為靜態變數。根據變數的型別可以分為靜態區域性變數和靜態全域性變數。

     1. 靜態區域性變數:它與區域性變數的區別在於:在函式退出時,這個變數始終存在,但不能被其它函式使用;當再次進入該函式時,將儲存上次的結果。其它與區域性變數一樣。

     2. 靜態全程變數:只在定義它的原始檔中可見而在其它原始檔中不可見的變數。它與全域性變數的區別是:全域性變數可以被其它原始檔使用,而靜態全域性變數只能被所在的原始檔使用。
三)extern:extern稱為外部申明。為了使變數或者函式除了在定義它的原始檔中可以使用外,還可以被其它檔案使用。因此通知每一個程式模組檔案,此時可用extern來說明。

比如extern u8 tpwakeupswitch;extern int tpwakeupswitch_read();一定要加上返回型別,親身碰到沒有返回型別,引用過來的變數是很奇怪的值。
四)register:register稱為暫存器變數。它只能用於整型和字元型變數。定義符register說明的變數被儲存在CPU的暫存器中,定義一個整型暫存器變數可寫成: register int a;
      對於以上四種資料的儲存位置:register變數存在CPU的暫存器中;auto型別變數存在記憶體的棧;static型的區域性變數和全域性變數以及extern型變數(即全域性變數),存在於記憶體的靜態區。

相關推薦

C語言支援變數儲存型別

一)auto:auto稱為自動變數(區域性變數)。區域性變數是指在函式內部說明的變數(有時也稱為自動變數)。所有的非全程變數都被認為是區域性變數,所以auto實際上從來不用。區域性變數在函式呼叫時自動產生,但不會自動初始化,隨函式呼叫的結束,這個變數也就自動消失了。下次呼叫

C語言程式結構

1、順序結構 順序結構的程式設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。 例如;a = 3,b = 5,現交換a,b的值,這個問題就好像交換兩個杯子水

C++中的強轉型別

在C++中一共有四種強轉型別分別為:static_cast,const_cast,reinterpret_cast和dynamic_cast 型別轉換的一般形式為:cast-name<type&

C語言】如何計算變數型別佔記憶體的大小

一般形式 語法形式 執行結果 sizeof(型別) 型別佔用的記憶體位元組數 sizeof(變數或表示式) 變數或表示式所屬型別佔的記憶體位元組數

C語言:連結屬性與儲存型別

一、 連結屬性C語言中連結屬性決定如何處理在不同檔案中出現的標示符。標示符的作用域與它的連結屬性有關,但這兩個屬性並不相同。連結屬性有3種: external(外部),internal(內部) 和 none(無)。1. none: 沒有連結的標示符,總是被當做單獨的個體,也就

C語言變數儲存型別有哪些?

    變數的儲存型別是C語言的重要組成部分,也是C語言學習的基礎。那C語言中變數的儲存型別有哪幾種呢?在程式設計過程中又該怎樣運用呢?就這一問題,我今天給大家介紹一下!總的來說,C語言中變數的儲存型別可以分為四種,他們分別是自動變數、靜態變數、外部變數和暫存器變數這四種,

C語言的五儲存

五種儲存類 C Primer Plus 第十二章 儲存類、連結和記憶體管理 儲存類 時期 作用域 連結 宣告方式 自動 自動 程式碼塊 空

C || 圖的儲存結構實現

1. 陣列表示法: #include <stdio.h> #include <limits.h> #define INFINITY INT_MAX #define Maxvex 100 typedef struct graph {

C語言交換兩個變數數值的幾方法

因為經常見到這類題目,就自己總結了以下幾種辦法 1. 建立中間變數 這是最快也是最簡單的辦法,例如: #include<stdio.h> int main() { int a=10; int b=20; i

C++中auto,static,register,extern變數簡單理解

靜態儲存變數:一般是在定義時就分配了固定的儲存空間並一直保持不變,直到整個程式結束為止. 動態儲存變數:一般是在程式執行過程中使用到該變數時才會為該變數進行儲存空間的分配操作,在呼叫函式完畢之後,此類變數的儲存空間將會立即進行釋放. auto變數: #include<

C語言的三整型資料型別:int、short int和long int

int資料型別的位數為16位,short int資料型別的位數也是16位。而long int的位數為32位,可用來儲存比較大的整數。  short int 和 long int可以縮寫為short 和 long。               C語言中的整型資料型別int、

C++中的強制型別轉換的區別

使用標準C++的型別轉換符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。 1 static_cast 用法:static_cast < type-id > ( expression

C語言中幾型別所佔位元組數

最近經常會遇到C語言中各型別變數所佔位元組數的問題,索性在這裡做一個整理總結。 其實C標準並沒有具體給出規定哪個基本型別應該是多少個位元組數,而且這個也與OS、編譯器有關,比如同樣是在32位作業系統,VC++的編譯器下int型別為4個位元組,而在tuborC下

c++ 變數儲存型別

extern 儲存型別 : 只宣告而不定義變數,變數的宣告只是告訴編輯器變數的名稱和資料型別;變數的定義是給變數分配儲存區域;優點就是可以在多個檔案裡面共享一個全域性變數, static 儲存型別: static指的是靜態變數(又叫永續性變數);靜態變數分為兩種,第一種是區

C++中變數儲存型別

儲存類 auto 儲存類 auto 儲存類是所有區域性變數預設的儲存類。 {int mount;autoint month;} 上面的例項定義了兩個帶有相同儲存類的變數,auto 只能用在函式

c語言中一典型的排列組合算法

scan .com nbsp 方法 can main else const 組合數 c語言中的全排列算法和組合數算法在實際問題中應用非常之廣,但算法有許許多多,而我個人認為方法不必記太多,最好只記熟一種即可,一招鮮亦可吃遍天 全排列: #include<stdio.h

C語言講,typedef 關鍵字,以及作用域

pre 如果 訪問 作用域 c語言 pri 代碼 包含 結構         C語言第四講,typedef 關鍵字,以及作用域 一丶typedef關鍵字   在C語言中,有typedef 關鍵字,這個關鍵字的作用就是允許你為類型定義一個新的名字,也就是 起個別的名字 例如:

c語言章-條件結構

case 數值 運算符和 替代 替代品 OS 運算符 結構 div 表達式:由運算符和操作數組成賦值運算符:=多分枝選擇結構if else if else if else嵌套結構if(){ if(){ }}switch case 結構defaul

C語言——第次作業

將不 博客 位置 基本功 請問 實現 我們 word 結束 作業要求一 實踐最簡答的項目wordcount,必須完成其中的基本功能,若可以完成其他功能給予加分。完成後請將你的設計思路、主要代碼寫在本次作業博客裏。 要求三、學習總結和進度 1、我的git地址。 2、點評3個同

C語言入門

/1.在螢幕上輸出以下圖案: //* //*** //***** //******* //********* //*********** //************* //*********** //********* //******* //***** //*** //* #incl