欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語(yǔ)言中關(guān)鍵詞extern用法的一個(gè)注意事項(xiàng)

冬至子 ? 來(lái)源:永珂在線 ? 作者:沙鷗520 ? 2023-11-02 14:42 ? 次閱讀

在做項(xiàng)目開(kāi)發(fā)時(shí),在一個(gè)單片機(jī)C語(yǔ)言程序(用keil開(kāi)發(fā))中,如果有兩個(gè)C文件,在其中一個(gè)C文件(設(shè)為a文件)定義了一個(gè)全局變量v,并在此文件里的程序段里修改此變量,在另外一個(gè)C文件(設(shè)為b文件)里用外部變量(extern)的方法引用此變量,并讀取變量v,但是,在b中讀取時(shí)結(jié)果變量v出錯(cuò),出現(xiàn)亂值。

什么原因?

v在b文件里作為外部變量,被認(rèn)為分配的地址在其他地方,在b文件里只是讀取沒(méi)有寫入,實(shí)際就沒(méi)有分配內(nèi)存地址,從而出錯(cuò)。

圖片

怎么修改?

方法1,在b文件中定義此變量v,在a文件中用外部變量的方式引用變量v,在a文件里修改變量v,在b文件中回讀變量v,結(jié)果正常。

這樣,在b文件里定義了變量v,分配了內(nèi)存地址,在a文件中引用外部變量v并進(jìn)行了寫入操作,也分配了內(nèi)存地址,所以不出錯(cuò)。

圖片

方法2,最優(yōu)方法,在一個(gè)c文件(如a.c)里定義全局變量v,在其h文件(a.h)里再引用為外部變量,在用到變量v的其他c文件里include a.h,這樣的話不管是否讀寫都無(wú)問(wèn)題。當(dāng)然,a.c里也要include a.h。

圖片

注意:全局變量才能被外部引用,靜態(tài)變量和局部變量不行的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6044

    文章

    44628

    瀏覽量

    638990
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7615

    瀏覽量

    137845
  • 靜態(tài)變量
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    6688
  • extern
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    2966
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語(yǔ)言中不建議使用的關(guān)鍵詞

    我們?cè)趯W(xué)校學(xué)習(xí)或者有參加過(guò)C語(yǔ)言培訓(xùn)的話,應(yīng)該都聽(tīng)說(shuō)過(guò)“不建議使用goto語(yǔ)句”。但是,般不會(huì)有人告訴你為什么不建議使用goto語(yǔ)句,類似于這種存在但不建議使用的關(guān)鍵詞還有很多。
    發(fā)表于 09-08 14:18 ?1418次閱讀

    C語(yǔ)言for循環(huán)的用法注意事項(xiàng)

    C 語(yǔ)言種廣泛使用的編程語(yǔ)言,它具有簡(jiǎn)潔、高效、靈活的特點(diǎn)。C 語(yǔ)言中有很多控制流程的語(yǔ)句,
    的頭像 發(fā)表于 11-20 18:27 ?2650次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>for循環(huán)的<b class='flag-5'>用法</b>和<b class='flag-5'>注意事項(xiàng)</b>

    高速電路中過(guò)孔設(shè)計(jì)注意事項(xiàng)

    ,總結(jié)出高速PCb過(guò)孔設(shè)計(jì)中的注意事項(xiàng)。關(guān)鍵詞:過(guò)孔;寄生電容;寄生電感;非穿導(dǎo)孔技術(shù)[hide][/hide]
    發(fā)表于 08-16 13:33

    [討論]提高網(wǎng)站關(guān)鍵詞排名的28個(gè)SEO小技巧

    提高網(wǎng)站關(guān)鍵詞排名的28個(gè)SEO小技巧關(guān)鍵詞位置、密度、處理 URL中出現(xiàn)關(guān)鍵詞(英文) 網(wǎng)頁(yè)標(biāo)題中出現(xiàn)關(guān)鍵詞(1-3
    發(fā)表于 12-01 17:08

    關(guān)鍵詞優(yōu)化有哪些實(shí)用的方法

    在這里就來(lái)和大家起來(lái)分享下。關(guān)鍵詞應(yīng)該怎么去優(yōu)化,這是我們的個(gè)思考,然后就要想對(duì)應(yīng)的方法去做優(yōu)化,通常我們做
    發(fā)表于 08-11 01:19

    VHDL語(yǔ)言中信號(hào)設(shè)置的不同方式,有什么注意事項(xiàng)?

    并行同時(shí)語(yǔ)句命令主要有哪幾種表達(dá)方式?VHDL語(yǔ)言中信號(hào)設(shè)置的不同方式及注意事項(xiàng)
    發(fā)表于 04-08 06:26

    介紹一下關(guān)鍵extern用法

    學(xué)單片機(jī)C語(yǔ)言定要熟悉關(guān)鍵字的用法,本文介紹一下關(guān)鍵ex
    發(fā)表于 07-15 06:38

    C語(yǔ)言中的數(shù)據(jù)類型有哪幾種?const有哪些用法

    C語(yǔ)言中的數(shù)據(jù)類型有哪幾種?const有哪些用法?作用域與static用法是什么?extern是如何去使用的?
    發(fā)表于 07-22 06:51

    c語(yǔ)言和單片機(jī)遇見(jiàn)的小注意事項(xiàng)

    c語(yǔ)言和單片機(jī)遇見(jiàn)的小注意事項(xiàng)(會(huì)長(zhǎng)期更)c語(yǔ)言中1.定義字符串char str[30]="abcdefg";[30]預(yù)存空間不可以忘記2.
    發(fā)表于 12-09 07:23

    編寫C語(yǔ)言時(shí)常見(jiàn)的注意事項(xiàng)有哪些

    為什么學(xué)C語(yǔ)言?編寫C語(yǔ)言時(shí)常見(jiàn)的注意事項(xiàng)有哪些?C語(yǔ)言
    發(fā)表于 02-25 07:15

    VHDL語(yǔ)言中信號(hào)的不同形式設(shè)置

    摘要: 通過(guò)個(gè)偶同位產(chǎn)生器邏輯功能的實(shí)現(xiàn)過(guò)程,介紹了VHDL語(yǔ)言中信號(hào)設(shè)置的不同方 式及注意事項(xiàng),并給出了完整的程序代碼。 關(guān)鍵詞: VH
    發(fā)表于 10-06 08:48 ?1358次閱讀
    VHDL<b class='flag-5'>語(yǔ)言中</b>信號(hào)的不同形式設(shè)置

    C語(yǔ)言中的#和##的用法

    1. 前言 使用#把宏參數(shù)變?yōu)?b class='flag-5'>一個(gè)字符串,用##把兩個(gè)宏參數(shù)貼合在起. 2. 用法 3. 注意事項(xiàng)
    的頭像 發(fā)表于 12-06 09:34 ?7.6w次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言中</b>的#和##的<b class='flag-5'>用法</b>

    C語(yǔ)言中的typedef的用法

    在以前的學(xué)習(xí)中對(duì)于C語(yǔ)言中typedef和define的認(rèn)識(shí)是,#define是宏,作用是簡(jiǎn)單的替換,而typedef也是替換,只不過(guò)比define高級(jí)的是在替換的時(shí)候會(huì)進(jìn)行語(yǔ)法檢查。但是后來(lái)
    發(fā)表于 01-13 13:36 ?0次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言中</b>的typedef的<b class='flag-5'>用法</b>

    C語(yǔ)言中__attribute__ 關(guān)鍵字的用法

    嵌入式開(kāi)發(fā),離不開(kāi) C 語(yǔ)言C語(yǔ)言中有很多語(yǔ)法會(huì)直接或間接影響你代碼的質(zhì)量,下面就來(lái)講講__attribute__ 關(guān)鍵字的
    發(fā)表于 10-19 09:06 ?1.3w次閱讀

    淺析C語(yǔ)言中的regiseter關(guān)鍵

    C語(yǔ)言中重要的關(guān)鍵字有很多,static const extern我們之前都講過(guò),還有個(gè)在面試
    的頭像 發(fā)表于 08-25 17:10 ?1186次閱讀
    淺析<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言中</b>的regiseter<b class='flag-5'>關(guān)鍵</b>字