欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c語言中static和extern的用法詳細(xì)解析

 更新時(shí)間:2013年09月26日 09:20:48   作者:  
以下是對(duì)c語言中static和extern的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助

一,static和extern:
大工程下我們會(huì)碰到很多源文檔。

文檔a.c

復(fù)制代碼 代碼如下:

static int i; //只在a文檔中用
int j;    //在工程里用
static void init()         //只在a文檔中用
{
}
void callme()          //在工程中用
{
   static int sum;
}

上面的全局i變量和init()函數(shù)只能用在a.c文檔中,全局變量sum的作用域只在callme里。變量j和函數(shù)callme()的全局限擴(kuò)充到整個(gè)工程文檔。所以能夠在下面的b.c中用extern關(guān)鍵字調(diào)用。extern告訴編譯器這個(gè)變量或函數(shù)在其他文檔里已被定義了。

文檔b.c

復(fù)制代碼 代碼如下:

extern int j;     //調(diào)用a文檔里的
extern void callme();  //調(diào)用a文檔里的
int main()
{
  ...
}

extern的另外用法是當(dāng)C和C++混合編程時(shí)假如c++調(diào)用的是c源文檔定義的函數(shù)或變量,那么要加extern來告訴編譯器用c方式命名函數(shù):
文檔A.cpp調(diào)用a.c里面的變量i和函數(shù)callme()
復(fù)制代碼 代碼如下:

extern "C"  //在c++文檔里調(diào)用c文檔中的變量
{
   int j;
   void callme();
}
int main()
{
   callme();
}

二,static法則:
A、若全局變量?jī)H在單個(gè)C文檔中訪問,則能夠?qū)⑦@個(gè)變量修改為靜態(tài)全局變量,以降低模塊間的耦合度;

B、若全局變量?jī)H由單個(gè)函數(shù)訪問,則能夠?qū)⑦@個(gè)變量改為該函數(shù)的靜態(tài)局部變量,以降低模塊間的耦合度;

C、設(shè)計(jì)和使用訪問動(dòng)態(tài)全局變量、靜態(tài)全局變量、靜態(tài)局部變量的函數(shù)時(shí),需要考慮重入問題;

相關(guān)文章

  • OnSize、OnSizing和OnGetMinMaxInfo區(qū)別分析

    OnSize、OnSizing和OnGetMinMaxInfo區(qū)別分析

    這篇文章主要介紹了OnSize、OnSizing和OnGetMinMaxInfo區(qū)別分析,需要的朋友可以參考下
    2015-01-01
  • C++中策略模式和工廠模式的區(qū)別

    C++中策略模式和工廠模式的區(qū)別

    這篇文章介紹了C++中策略模式和工廠模式的區(qū)別,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Cocos2d-x UI開發(fā)之CCControlSwitch控件類使用實(shí)例

    Cocos2d-x UI開發(fā)之CCControlSwitch控件類使用實(shí)例

    這篇文章主要介紹了Cocos2d-x UI開發(fā)之CCControlSwitch控件類使用實(shí)例,本文代碼中含大量注釋講解了CCControlSwitch控件類的使用,需要的朋友可以參考下
    2014-09-09
  • 利用Qt制作簡(jiǎn)單的日期選擇界面

    利用Qt制作簡(jiǎn)單的日期選擇界面

    Qt自帶的日期選擇控件過于丑陋與難用,所以但凡有點(diǎn)小想法的人都會(huì)做一個(gè)全新的日歷。這篇文章就來利用Qt制作一個(gè)簡(jiǎn)單的日期選擇界面,感興趣的可以了解一下
    2023-03-03
  • 使用C++和Crypto++庫實(shí)現(xiàn)AES加密與解密

    使用C++和Crypto++庫實(shí)現(xiàn)AES加密與解密

    在這篇博客中,我們將深入探討如何利用C++和Crypto++庫實(shí)現(xiàn)高效且安全的AES加密與解密機(jī)制,Crypto++是一款高度認(rèn)可的免費(fèi)C++類庫,文中通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-01-01
  • C語言實(shí)現(xiàn)計(jì)算雙色球的中獎(jiǎng)率

    C語言實(shí)現(xiàn)計(jì)算雙色球的中獎(jiǎng)率

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實(shí)現(xiàn)計(jì)算雙色球的中獎(jiǎng)率,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-12-12
  • 基于樹莓派實(shí)現(xiàn)播放MP3音樂

    基于樹莓派實(shí)現(xiàn)播放MP3音樂

    這篇文章主要為大家詳細(xì)介紹了基于樹莓派實(shí)現(xiàn)播放MP3音樂,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • C語言數(shù)據(jù)結(jié)構(gòu)樹之后序遍歷的實(shí)現(xiàn)

    C語言數(shù)據(jù)結(jié)構(gòu)樹之后序遍歷的實(shí)現(xiàn)

    這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之后序遍歷的實(shí)現(xiàn)的相關(guān)資料,這里提供一個(gè)簡(jiǎn)單實(shí)例來實(shí)現(xiàn)后續(xù)遍歷,對(duì)于數(shù)據(jù)結(jié)構(gòu)樹的學(xué)習(xí)很有幫助,需要的朋友可以參考下
    2017-07-07
  • 淺析C++的特殊工具與技術(shù)

    淺析C++的特殊工具與技術(shù)

    以下是對(duì)C++中的特殊工具與技術(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • 淺析C語言中assert的用法

    淺析C語言中assert的用法

    以下是對(duì)C語言中assert的使用方法進(jìn)行了介紹,需要的朋友可以參考下
    2013-07-07

最新評(píng)論