程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言中static的使用

C語言中static的使用

編輯:關於C

在開發過程中,我們經常會需要定義一些static類型的變量或者函數,我們接下來來具體聊一下static;

1、修飾變量

當static來修飾一個變量時,就注定了這個變量的可見范圍和生命周期;

(1)當修飾全局變量時

static int flag1 = 0;

int flag2 = 0;

這兩個變量存儲在全局數據區,flag1只在本文件可見,其他文件中不可見;flag2可在其他文件中通過聲明extern int flag2來使用;

(2)當修飾局部變量時

void fun(void){

static int temp1;

int temp2 = 0;

......................

return;

}

函數中,temp1為局部靜態變量,存儲在全局數據區,temp2為局部變量,存儲在棧上;但是隨著函數的退出,temp2的生命周期也就結束,但是temp1依然有效,只不 過可見范圍為本函數內,下次再次進入本函數時,對temp1的任何修改都是在上次修改的基礎上進行,也就是說temp1有記憶性。

2、修飾函數

static修飾的函數主要是在本文件中使用的函數,不對外提供,Linux內核中的任何文件中都有此類型的靜態函數;

static inline void enable_noirq(void){

................

}

使用static修飾函數的好處就是,所有文件可以定義同名的函數,不用考慮重名導致的編譯報錯;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved