本文目錄一覽:
- 1、C語言中static關鍵字作用
- 2、C語言中static是做什麼用的?
- 3、c語言中static說明是什麼意思?
- 4、c語言中static的作用和用法
- 5、static在c語言中是什麼意思?
- 6、static在c語言中是什麼意思
C語言中static關鍵字作用
static修飾變數
1 在塊中使用static修飾變數
它具有靜態存儲持續時間、塊範圍和無鏈接。
即作用域只能在塊中,無法被塊外的程序調用;變數在程序載入時創建,在程序終止時結束。
它只在編譯時初始化一次。如果沒有顯式初始化,默認初始化為0.
程序執行結果:
(1) 這裡變數stay ,它從程序載入時開始存在,直到程序終止。但是它的範圍僅限於trystat() 函數塊。只有當這個函數執行時,程序才能使用stay 訪問它指定的對象.
(2) 變數stay 記得它的值增加了1,但是變數fade每次都會重新開始。這指出了初始化的不同之處:fade 在trystat() 每次調用都從新初始化,而stay 變數只初始化一次。
(3) 靜態變數在程序載入到內存之後就已經就位了。將語句static int stay = 1; 放在trystat()函數中告訴編譯器,只允許trystat() 函數查看變數;它不是在運行時執行的語句。
2 在任何函數外部使用static修飾變數
它具有靜態存儲時間、文件範圍和內部鏈接。
即作用域在當前文件之中(只能被同一文件中的函數使用),無法被其他文件調用
它只在編譯時初始化一次。如果沒有顯式初始化,默認初始化為0。
使用static修飾函數
作用域限制在當前定義的文件中使用,從而避免了多文件函數名稱衝突的可能性。通常文件中不作為介面的函數,建議使用static修飾,這樣避免不同文件使用相同的函數名發生衝突。
上述為某平台使用DA播放wav的程序片段,
上述函數為內部函數使用static 修飾。
上述兩個函數為模塊介面(初始化DA和播放wav功能)供外部調用,沒有使用static修飾。
原文:
C語言中static是做什麼用的?
static 用來說明靜態變數。如果是在函數外面定義的,那麼其效果和全局變數類似,但是,static定義的變數只能在當前c程序文件中使用,在另一個c代碼裡面,即使使用extern關鍵詞也不能訪問這個static變數。如果是在函數內部定義的,那麼這個變數只初始化一次。
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。儘管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標準規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
C語言繼續發展,在1982年,很多有識之士和美國國家標準協會為了使這個語言健康地發展下去,決定成立C標準委員會,建立C語言的標準。委員會由硬體廠商,編譯器及其他軟體工具生產商,軟體設計師,顧問,學術界人士,C語言作者和應用程序員組成。
c語言中static說明是什麼意思?
在C語言中,static關鍵字的作用如下:
1、在修飾變數的時,static修飾的靜態局部變數只執行一次,而且延長了局部變數的生命周期,直到程序運行結束以後才釋放。
2、static修飾全局變數的時,這個全局變數只能在本文件中訪問,不能在其它文件中訪問,即便是extern外部聲明也不可以。
3、static修飾一個函數,則這個函數的只能在本文件中調用,不能被其他文件調用。Static修飾的局部變數存放在全局數據區的靜態變數區。
擴展資料:
static關鍵字在C語言、C++、java中的作用有著相似之處,但也存在差異:
一、C++的static用法:
1、面向過程程序設計中的static和面向對象程序設計中的static。前者應用於普通變數和函數,不涉及類;後者主要說明static在類中的作用。
2、在類中,static可以用來修飾靜態數據成員和靜態成員方法
靜態數據成員
(1)靜態數據成員可以實現多個對象之間的數據共享,它是類的所有對象的共享成員,它在內存中只佔一份空間,如果改變它的值,則各對象中這個數據成員的值都被改變。
(2)靜態數據成員是在程序開始運行時被分配空間,到程序結束之後才釋放,只要類中指定了靜態數據成員,即使不定義對象,也會為靜態數據成員分配空間。
(3)靜態數據成員既可以通過對象名引用,也可以通過類名引用。
靜態成員函數
(1)靜態成員函數和靜態數據成員一樣,他們都屬於類的靜態成員,而不是對象成員。
(2)非靜態成員函數有this指針,而靜態成員函數沒有this指針。
(3)靜態成員函數主要用來方位靜態數據成員而不能訪問非靜態成員。
二、java的static用法:
1、聲明為static的變數稱為靜態變數或類變數。可以直接通過類名引用靜態變數,也可以通過實例名來引用靜態變數,但最好採用前者,因為後者容易混淆靜態變數和一般變數。
2、聲明為static的方法稱為靜態方法或類方法。靜態方法可以直接調用靜態方法,訪問靜態變數,但是不能直接訪問實例變數和實例方法。靜態方法中不能使用this關鍵字,因為靜態方法不屬於任何一個實例。
參考資料來源:百度百科-static(計算機高級語言)
c語言中static的作用和用法
static關鍵字不僅可以用來修飾變數,還可以用來修飾函數。在使用 static 關鍵字修飾變數時,我們稱此變數為靜態變數。靜態變數的存儲方式與全局變數一樣,都是靜態存儲方式。靜態變數屬於靜態存儲方式,屬於靜態存儲方式的變數卻不一定就是靜態變數。
在C語言中,static關鍵字的作用如下:
在修飾變數的時,static修飾的靜態局部變數只執行一次,而且延長了局部變數的生命周期,直到程序運行結束以後才釋放。
static修飾全局變數的時,這個全局變數只能在本文件中訪問,不能在其它文件中訪問,即便是extern外部聲明也不可以。
static修飾一個函數,則這個函數的只能在本文件中調用,不能被其他文件調用。Static修飾的局部變數存放在全局數據區的靜態變數區。
C++的static用法:
面向過程程序設計中的static和面向對象程序設計中的static。前者應用於普通變數和函數,不涉及類;後者主要說明static在類中的作用。
在類中,static可以用來修飾靜態數據成員和靜態成員方法。
靜態數據成員:
靜態數據成員可以實現多個對象之間的數據共享,它是類的所有對象的共享成員,它在內存中只佔一份空間,如果改變它的值,則各對象中這個數據成員的值都被改變。
靜態數據成員是在程序開始運行時被分配空間,到程序結束之後才釋放,只要類中指定了靜態數據成員,即使不定義對象,也會為靜態數據成員分配空間。
靜態數據成員既可以通過對象名引用,也可以通過類名引用。
靜態成員函數:
靜態成員函數和靜態數據成員一樣,他們都屬於類的靜態成員,而不是對象成員。
非靜態成員函數有this指針,而靜態成員函數沒有this指針。
靜態成員函數主要用來方位靜態數據成員而不能訪問非靜態成員。
static在c語言中是什麼意思?
static在c語言中是「靜態」的意思,用於在函數中聲明「靜態變數」用,在每一次調用後,該變數並不在函數返回時立即釋放,變數中保存的值,可以保留到下一次調用時繼續有效。
static在c語言中是什麼意思
1、修飾變數
變數分為局部和全局變數,但是都存於內存的靜態區。靜態全局變數的作用域僅局限於變數被定義的文件中,其他文件即使使用extern也沒法使用,其範圍準確的說是從定義之初開始,到文件結尾處結束。在其前面定義的代碼行也不能使用。
靜態局部變數,在函數體裡面定義的,就只能在這個函數里用了,同一個文檔中的其他函數也用不了。由於被static 修飾的變數總是存在內存的靜態區,所以即使這個函數運行結束,這個靜態變數的值還是不會被銷毀,函數下次使用時仍然能用到這個值。
2、修飾函數
函數前加static 使得函數成為靜態函數。但此處「static」的含義不是指存儲方式,而是指對函數的作用域僅局限於本文件(所以又稱內部函數)。使用內部函數的好處是:不同的人編寫不同的函數時,不用擔心自己定義的函數,是否會與其它文件中的函數同名。
關鍵字static 有著不尋常的歷史。起初,在C 中引入關鍵字static 是為了表示退出一個塊後仍然存在的局部變數。隨後,static 在C 中有了第二種含義:用來表示不能被其它文件訪問的全局變數和函數。為了避免引入新的關鍵字,所以仍使用static 關鍵字來表示這第二種含義。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/252857.html