女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]在KEIL C中,有多個(gè)源文件使用到全局變量時(shí),可以在一個(gè)源文件中定義全局變量,在另外的源文件中用extern 聲明該變量,說明該變量定義在別的文件中,將其作用域擴(kuò)展到此文件。例如:有以下兩個(gè)源文件test1.c,test2.

在KEIL C中,有多個(gè)源文件使用到全局變量時(shí),可以在一個(gè)源文件中定義全局變量,在另外的源文件中用extern 聲明該變量,說明該變量定義在別的文件中,將其作用域擴(kuò)展到此文件。


例如:有以下兩個(gè)源文件test1.c,test2.c



//test1.c

char aaa; //定義aaa


func1()

{

char bbb;

aaa = bbb;

}


//……




//test2.c


extern char aaa; //把a(bǔ)aa的作用域擴(kuò)展到此


func2()

{

char ccc;

aaa =ccc;

}


//……



  如果還有其他文件要用到aaa,用法同test2.c,使用extern char aaa;語句將aaa的作用域擴(kuò)展到此,然后就可以使用它。這里要特別注意的是:在使用extern時(shí),不要忘了變量的類型,也就是上面例子變量aaa的修飾符char,不然結(jié)果就不是你想要的結(jié)果了,aaa的值將不可預(yù)料。



  本來我想嘗試把全局變量定義到頭文件里面的,可是屢試不爽,編譯器老是報(bào)重定義的錯(cuò),還舉上面的例子,具體如下:


復(fù)制代碼

//test1.h

#ifndef __TEST1_H__

#define __TEST1_H__


char aaa; //在test1.c的頭文件中定義aaa;


func1();


#endif


//test1.c

#include “test1.h”


func1() //在func1中給aaa賦值

{

char bbb;

aaa = bbb;

}



//////////////////////////////////////////////////////////////


//test2.h

#ifndef __TEST2_H__

#define __TEST2_H__


extern char aaa; //在test2.c的頭文件中聲明aaa為外部變量


func2();


#endif


//test2.c

#include “test1.h” //包括test1.h

#include “test2.h”


func2()

{

char ccc;

aaa =ccc;

}


可是編譯器總是報(bào)aaa重定義的錯(cuò),經(jīng)過改正,編譯通過,修改如下:


//test1.h

#ifndef __TEST1_H__

#define __TEST1_H__


extern char aaa; //在test1.c的頭文件中聲明外部變量aaa;


func1();


#endif


//test1.c

#include “test1.h”


char aaa; //在test1.c中定義aaa;


func1() //在func1中給aaa賦值

{

char bbb;

aaa = bbb;

}

//////////////////////////////////////////////////////////////


//test2.h

#ifndef __TEST2_H__

#define __TEST2_H__


func2();


#endif


//test2.c

#include “test1.h” //包括test1.h

#include “test2.h”


func2()

{

char ccc;

aaa =ccc;

}

也就是說,只要在使用的源文件中定義全局變量,在對(duì)應(yīng)頭文件中聲明該全局變量為外部變量,即該變量允許外部使用,在其他要使用該變量的源文件中包括該頭文件即可。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在C/C++多文件編程中,靜態(tài)變量(static)與全局變量的作用域規(guī)則看似簡(jiǎn)單,實(shí)則暗藏諸多陷阱。開發(fā)者若未能準(zhǔn)確理解其鏈接屬性與生命周期,極易引發(fā)難以調(diào)試的內(nèi)存錯(cuò)誤、競(jìng)態(tài)條件以及維護(hù)災(zāi)難。本文將深入剖析這兩類變量的作...

關(guān)鍵字: 靜態(tài)變量 全局變量 C語言

在實(shí)時(shí)操作系統(tǒng)(RTOS)的設(shè)計(jì)中,任務(wù)間通信是一個(gè)至關(guān)重要的環(huán)節(jié)。它直接關(guān)系到系統(tǒng)的實(shí)時(shí)性、穩(wěn)定性和可維護(hù)性。全局變量作為一種簡(jiǎn)單的數(shù)據(jù)共享方式,在RTOS任務(wù)間通信中確實(shí)可以被使用,但通常并不推薦作為主要的通信手段。...

關(guān)鍵字: RTOS任務(wù) 全局變量

嵌入式開發(fā)作為一種專業(yè)且技術(shù)密集型的領(lǐng)域,涵蓋了從硬件底層驅(qū)動(dòng)、中間件到應(yīng)用層軟件開發(fā)等多個(gè)層面的工作,其所需的工具種類繁多,各有針對(duì)性,旨在提升開發(fā)效率、保證代碼質(zhì)量以及簡(jiǎn)化調(diào)試過程。

關(guān)鍵字: 嵌入式開發(fā) keil

之后新建新的工程,添加.a文件就可以使用了,當(dāng)然也可以使用keil來添加,但是keil默認(rèn)的是用.lab,需要自己配置一下文件屬性,改為lib文件即可。一半release sdk的時(shí)候用這種方式很關(guān)鍵的,畢竟自己的核心代...

關(guān)鍵字: keil 文件屬性 lib文件

工作也有些年頭了,從一位技術(shù)新人成長(zhǎng)到現(xiàn)在自詡小牛級(jí)別的人物,少不了要自己尋找資料閱讀。論壇上、書店里、雜志上......要嘛是些菜鳥淺薄的自炫處女貼,要嘛是高屋建瓴云里來霧里去的概念文,好不容易遇到個(gè)實(shí)踐型高手寫的文章...

關(guān)鍵字: 全局變量

關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容來源:SedateFire整理:技術(shù)讓夢(mèng)想更偉大?|?李肖遙工作也有些年頭了,從一位技術(shù)新人成長(zhǎng)到現(xiàn)在自詡小牛級(jí)別的人物,少不了要自己尋找資料閱讀。論壇上、書店里、雜志上......要嘛是些...

關(guān)鍵字: 全局變量 編程 嵌入式C

01前言全局變量簡(jiǎn)直就是嵌入式系統(tǒng)的戈蘭高地。沖突最激烈的雙方是:1.做控制的工程師;2.做非嵌入式的軟件工程師。02做控制的工程師特點(diǎn)他們普遍的理解就是“變量都寫成全局該有多方便”。我之前面試過一個(gè)非常有名的做控制實(shí)驗(yàn)...

關(guān)鍵字: 全局變量

SystemVerilog提供四種不同的實(shí)例之間的通信或連接方式:端口、句柄、全局變量、直接層次引用。?端口是靜態(tài)實(shí)例世界的成員之間的連接,如module和interface實(shí)例。因此,它們可能不會(huì)在動(dòng)態(tài)實(shí)例世界類中使用...

關(guān)鍵字: 全局變量 端口

DSP28335與AD7606通過SPI的串行數(shù)據(jù)交互

關(guān)鍵字: keil C
關(guān)閉