static在c語言中怎麼用,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-hk/n/252857.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-14 02:15
下一篇 2024-12-14 02:15

相關推薦

  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論