專利名稱:全局變量管理方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種全局變量管理方法及裝置。
背景技術(shù):
目前終端開(kāi)發(fā)平臺(tái)比較多,每個(gè)平臺(tái)對(duì)開(kāi)發(fā)語(yǔ)言全局變量的支持方式有所不同,通常MTK(聯(lián)發(fā)科公司開(kāi)發(fā)的一種手機(jī)平臺(tái),廣泛用于國(guó)產(chǎn)手機(jī)的非智能手機(jī)系統(tǒng))平臺(tái)支持全局變量,而在MTK上運(yùn)行的多個(gè)中間件平臺(tái),有一部分支持全局變量的使用方式,另一部分則不支持全局變量的使用方式。若不支持全局變量使用方式,所有需要用到的全局變量,全部要在程序啟動(dòng)時(shí)初始化到平臺(tái)系統(tǒng)環(huán)境中,當(dāng)需要使用的時(shí)候,再通過(guò)統(tǒng)一的公共函數(shù)接口進(jìn)行獲取。 在實(shí)現(xiàn)上述全局變量使用的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問(wèn)題由于部分開(kāi)發(fā)平臺(tái)支持全局變量的使用方式,部分開(kāi)發(fā)平臺(tái)則不支持全局變量的使用方式,造成開(kāi)發(fā)的軟件在不同平臺(tái)的實(shí)現(xiàn)方式差別較大,使平臺(tái)代碼的可移植性較差。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的實(shí)施例提供一種全局變量管理方法及裝置,能夠使不同平臺(tái)采取統(tǒng)一的全量變量使用方式,提高平臺(tái)代碼的可移植性。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案一方面,本發(fā)明的實(shí)施例提供一種全局變量管理方法,包括查詢開(kāi)發(fā)平臺(tái)是否支持全局變量使用方式;若所述開(kāi)發(fā)平臺(tái)支持全局變量使用方式,則通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用;若所述開(kāi)發(fā)平臺(tái)不支持全局變量使用方式,則為所述開(kāi)發(fā)平臺(tái)定義存儲(chǔ)全局變量的結(jié)構(gòu)體,通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用,所述返回函數(shù)為從所述結(jié)構(gòu)體獲取全局變量的函數(shù)。另一方面,本發(fā)明的實(shí)施例提供一種全局變量管理裝置,包括查詢單元,用于查詢開(kāi)發(fā)平臺(tái)是否支持全局變量使用方式;第一定義單元,用于在所述查詢單元查詢到所述開(kāi)發(fā)平臺(tái)支持全局變量使用方式時(shí),通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用;第二定義單元,用于在所述查詢單元查詢到所述開(kāi)發(fā)平臺(tái)不支持全局變量使用方式時(shí),為所述開(kāi)發(fā)平臺(tái)定義存儲(chǔ)全局變量的結(jié)構(gòu)體,通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用,所述返回函數(shù)為從所述結(jié)構(gòu)體獲取全局變量的函數(shù)。相對(duì)于現(xiàn)有技術(shù),本發(fā)明實(shí)施例提供的技術(shù)方案能夠在開(kāi)發(fā)平臺(tái)不支持全局變量使用方式的情形下,通過(guò)為所述開(kāi)發(fā)平臺(tái)定義存儲(chǔ)全局變量的結(jié)構(gòu)體,通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用;使不支持全局變量使用方式的開(kāi)發(fā)平臺(tái)和支持全局變量使用方式的開(kāi)發(fā)平臺(tái)在對(duì)全局變量進(jìn)行聲明、定義及調(diào)用時(shí)使用相同的定義形式,從而使不同平臺(tái)能夠采取統(tǒng)一的全量變量使用方式,提高了平臺(tái)代碼的可移植性。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明實(shí)施例提供的全局變量管理方法的流程示意圖;圖2為本發(fā)明實(shí)施例提供的全局變量管理裝置的結(jié)構(gòu)框架
圖3為本發(fā)明實(shí)施例提供的另一全局變量管理裝置的結(jié)構(gòu)框架圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例I本發(fā)明實(shí)施例提供一種全局變量管理方法,如圖I所示,該方法包括步驟101、102、及 103。101、查詢開(kāi)發(fā)平臺(tái)是否支持全局變量使用方式;若所述開(kāi)發(fā)平臺(tái)支持全局變量使用方式,則執(zhí)行步驟102 ;若所述開(kāi)發(fā)平臺(tái)不支持全局變量使用方式,則執(zhí)行步驟103。102、通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用。其中,所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用可以通過(guò)以下的方式實(shí)現(xiàn),包括所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型和全局變量名,并在宏定義的字符串中寫(xiě)入聲明全局變量。以C語(yǔ)言的宏定義為例,所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明,具體可以為#define DECLARE_GLOBE_VARIABLE(type, name)extern type name其中,需要說(shuō)明的是,帶有參數(shù)的宏定義的固定格式為#define宏名(參數(shù)表)字符串,例如#define S(a,b)a*b ;在程序中的應(yīng)用為area = S(3, 2);則其宏定義的執(zhí)行為第一步 area = S (3, 2)被換為 area = a*b ;第二步 area = S (3, 2)被換為 area = 3*2。本發(fā)明實(shí)施例中,DECLARE_GLOBE_VARIABLE為宏名;參數(shù)表包括type和name,type為全局變量的類型,name為全局變量的變量名;字符串為extern type name,表示聲明一種類型的全局變量。所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的定義為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型、全局變量名、以及所述全局變量的初始值,并在宏定義的字符串中寫(xiě)入全局變量的類型以及對(duì)所述全局變量的賦值。以C語(yǔ)言的宏定義為例,所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的定義,具體可以為#define DEFINE_GLOBE_VARIABLE(type,name, val) type name = val。其中,DEFINE_GLOBE_VARIABLE 為宏名;參數(shù)表包括 type、name和val, val為全局變量的初始值;type name = val為字符串,表示為一種類型的全局
變量賦初值。所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的調(diào)用為在宏定義的參數(shù)列表中寫(xiě)入全局變量名,在宏定義的字符串中寫(xiě)入所述全局變量名。以C語(yǔ)言的宏定義為例,所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的調(diào)用,具體可以為#define GLOBE (name) name ;其中,GLOBE為宏名;參數(shù)表包括name ;字符串為name。103、為所述開(kāi)發(fā)平臺(tái)定義存儲(chǔ)全局變量的結(jié)構(gòu)體,通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用,所述返回函數(shù)為從所述結(jié)構(gòu)體獲取全局變量的函數(shù)。其中,為所述開(kāi)發(fā)平臺(tái)定義存儲(chǔ)全局變量的結(jié)構(gòu)體,該結(jié)構(gòu)體可以表示為如下形式,但本發(fā)明實(shí)施例對(duì)此不進(jìn)行限制,任何結(jié)構(gòu)體的定義形式都可以應(yīng)用于本發(fā)明實(shí)施例中。typedef struct_GlobeVariable{int var ;int var2}GlobeVariable ;其中,所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用,可以通過(guò)以下的方式實(shí)現(xiàn),包括所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型和全局變量名,并在宏定義的字符串中寫(xiě)入以返回函數(shù)形式的全局變量的聲明。例如,以C語(yǔ)言的宏定義為例,所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明,具體可以為#define DECLARE_GLOBE_VARIABLE(type, name)extern type* FUN_GL0BE_VARIABLE_##name(QQVOID);其中,DECLARE_GLOBE_VARIABLE為宏名;參數(shù)表包括 type 和 name ;字符串為 extern type*FUN_GLOBE_VARIABLE_##name (QQVOID), FUN_GL0BE_VARIABLE_##name (QQVOID)為從所述結(jié)構(gòu)體獲取全局變量的函數(shù)。所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的定義為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型、全局變量名、以及所述全局變量的初始值,并在宏定義的字符串中寫(xiě)入全局變量的類型以及返回函數(shù)形式的全局變量的賦值。以C語(yǔ)言的宏定義為例,所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的定義,具體可以為#def ine DEFINE_GLOBE_VARIABLE (type, name, val) type*FUN_GLOBE_VARIABLE_##name(QQVOID);其中,DEFINE_GLOBE_VARIABLE為宏名;參數(shù)表包括 type、name 和 val,val 為全局變量的初始值;type*FUN_GLOBE_VARIABLE_##name (QQVOID)為字符串,表示為一種類型的
全局變量賦初值。
所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的調(diào)用為在宏定義的參數(shù)列表中寫(xiě)入全局變量名,在宏定義的字符串中寫(xiě)入返回函數(shù)形式的全局變量。以C語(yǔ)言的宏定義為例,所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的調(diào)用,具體可以為#define GLOBE(name)(*FUN_GLOBE_VARIABLE_##name());其中,GLOBE為宏名;參數(shù)表包括name ;字符串為(*FUN_GL0BE_VARIABLE_##nameO)。進(jìn)一步,所述FUN_GLOBE_VARIABLE_##name O可以定義為如下形式,包括type*FUN_GLOBE_VARIABLE_##nameO {return&(QGetGlobeVar iableO - > name);·}。進(jìn)一步的,當(dāng)不支持全局變量使用方式的開(kāi)發(fā)平臺(tái)運(yùn)行支持全局變量使用方式開(kāi)發(fā)平臺(tái)的應(yīng)用程序時(shí),獲取所述支持全局變量使用方式開(kāi)發(fā)平臺(tái)的應(yīng)用程序的全局變量信息,將所述全局變量信息保存在所述結(jié)構(gòu)體中,以使得所述不支持全局變量使用方式的開(kāi)發(fā)平臺(tái)成功運(yùn)行所述應(yīng)用程序。其中,獲取支持全局變量使用方式開(kāi)發(fā)平臺(tái)的應(yīng)用程序的全局變量信息,可以通過(guò)程序員人工獲取,也可以通過(guò)掃描應(yīng)用程序的代碼獲取,在具體實(shí)施時(shí),本發(fā)明實(shí)施例對(duì)此不進(jìn)行限制。本發(fā)明實(shí)施例中,在開(kāi)發(fā)平臺(tái)不支持全局變量使用方式的情形下,通過(guò)為所述開(kāi)發(fā)平臺(tái)定義存儲(chǔ)全局變量的結(jié)構(gòu)體,通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用;使不支持全局變量使用方式的開(kāi)發(fā)平臺(tái)和支持全局變量使用方式的開(kāi)發(fā)平臺(tái),在對(duì)全局變量進(jìn)行聲明、定義及調(diào)用時(shí)使用相同的定義形式,從而使不同平臺(tái)能夠采取統(tǒng)一的全量變量使用方式,提高了平臺(tái)代碼的可移植性,降低了多個(gè)開(kāi)發(fā)平臺(tái)代碼開(kāi)發(fā)及移植的代價(jià)。實(shí)施例2本發(fā)明實(shí)施例提供一種全局變量管理裝置,如圖2所示,該裝置包括查詢單元21、第一定義單元22、第二定義單元23。查詢單元21,用于查詢開(kāi)發(fā)平臺(tái)是否支持全局變量使用方式。第一定義單元22,用于在所述查詢單元21查詢到所述開(kāi)發(fā)平臺(tái)支持全局變量使用方式時(shí),通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用。其中,所述第一定義單元22通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用具體可以通過(guò)以下的方式實(shí)現(xiàn),包括所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型和全局變量名,并在宏定義的字符串中寫(xiě)入聲明全局變量;其中,所述第一定義單元22通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明的具體舉例,可以參考實(shí)施例I中的步驟102中的相應(yīng)描述,本發(fā)明實(shí)施例此處將不再贅述。所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的定義為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型、全局變量名、以及所述全局變量的初始值,并在宏定義的字符串中寫(xiě)入全局變量的類型以及對(duì)所述全局變量的賦值;其中,所述第一定義單元22通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的定義的具體舉例,可以參考實(shí)施例I中的步驟102中的相應(yīng)描述,本發(fā)明實(shí)施例此處將不再贅述。所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的調(diào)用為在宏定義的參數(shù)列表中寫(xiě)入全局變量名,在宏定義的字符串中寫(xiě)入所述全局變量名。其中,所述第一定義單元22通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的調(diào)用的具體舉例,可以參考實(shí)施例I中的步驟102中的相應(yīng)描述,本發(fā)明實(shí)施例此處將不再贅述。第二定義單元23,用于在所述查詢單元21查詢到所述開(kāi)發(fā)平臺(tái)不支持全局變量使用方式時(shí),為所述開(kāi)發(fā)平臺(tái)定義存儲(chǔ)全局變量的結(jié)構(gòu)體,通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用,所述返回函數(shù)為從所述結(jié)構(gòu)體獲取全局變量的函數(shù)。其中,所述第二定義單元23通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用具體可以通過(guò)以下的方式實(shí)現(xiàn),包括
所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型和全局變量名,并在宏定義的字符串中寫(xiě)入以返回函數(shù)形式的全局變量的聲明;其中,所述第二定義單元23通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明的具體舉例,可以參考實(shí)施例I中的步驟103中的相應(yīng)描述,本發(fā)明實(shí)施例此處將不再贅述。所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的定義為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型、全局變量名、以及所述全局變量的初始值,并在宏定義的字符串中寫(xiě)入全局變量的類型以及返回函數(shù)形式的全局變量的賦值;其中,所述第二定義單元23通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的定義的具體舉例,可以參考實(shí)施例I中的步驟103中的相應(yīng)描述,本發(fā)明實(shí)施例此處將不再贅述。所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的調(diào)用為在宏定義的參數(shù)列表中寫(xiě)入全局變量名,在宏定義的字符串中寫(xiě)入返回函數(shù)形式的全局變量。其中,所述第二定義單元23通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的調(diào)用的具體舉例,可以參考實(shí)施例I中的步驟103中的相應(yīng)描述,本發(fā)明實(shí)施例此處將不再贅述。進(jìn)一步的,如圖3所示,該裝置還可包括獲取單元24、存儲(chǔ)單元25。獲取單元24,用于當(dāng)不支持全局變量使用方式的開(kāi)發(fā)平臺(tái)運(yùn)行支持全局變量使用方式開(kāi)發(fā)平臺(tái)的應(yīng)用程序時(shí),獲取所述支持全局變量使用方式開(kāi)發(fā)平臺(tái)的應(yīng)用程序的全局變量信息。其中,所述獲取單元24獲取支持全局變量使用方式開(kāi)發(fā)平臺(tái)的應(yīng)用程序的全局變量信息,可以通過(guò)程序員人工獲取,也可以通過(guò)掃描應(yīng)用程序的代碼獲取,在具體實(shí)施時(shí),本發(fā)明實(shí)施例對(duì)此不進(jìn)行限制。存儲(chǔ)單元25,用于將所述獲取單元24獲取的所述全局變量信息保存在所述結(jié)構(gòu)體中,以使得所述不支持全局變量使用方式的開(kāi)發(fā)平臺(tái)成功運(yùn)行所述應(yīng)用程序。本發(fā)明實(shí)施例中,在開(kāi)發(fā)平臺(tái)不支持全局變量使用方式的情形下,通過(guò)為所述開(kāi)發(fā)平臺(tái)定義存儲(chǔ)全局變量的結(jié)構(gòu)體,通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用;使不支持全局變量使用方式的開(kāi)發(fā)平臺(tái)和支持全局變量使用方式的開(kāi)發(fā)平臺(tái),在對(duì)全局變量進(jìn)行聲明、定義及調(diào)用時(shí)使用相同的定義形式,從而使不同平臺(tái)能夠采取統(tǒng)一的全量變量使用方式,提高了平臺(tái)代碼的可移植性,降低了多個(gè)開(kāi)發(fā)平臺(tái)代碼開(kāi)發(fā)及移植的代價(jià)。通過(guò)以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤,硬盤或光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何 熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種全局變量管理方法,其特征在于,包括 查詢開(kāi)發(fā)平臺(tái)是否支持全局變量使用方式; 若所述開(kāi)發(fā)平臺(tái)支持全局變量使用方式,則通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用; 若所述開(kāi)發(fā)平臺(tái)不支持全局變量使用方式,則為所述開(kāi)發(fā)平臺(tái)定義存儲(chǔ)全局變量的結(jié)構(gòu)體,通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用,所述返回函數(shù)為從所述結(jié)構(gòu)體獲取全局變量的函數(shù)。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述通過(guò)宏定義的方式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用包括 所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型和全局變量名,并在宏定義的字符串中寫(xiě)入聲明全局變量; 所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的定義為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型、全局變量名、以及所述全局變量的初始值,并在宏定義的字符串中寫(xiě)入全局變量的類型以及對(duì)所述全局變量的賦值; 所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的調(diào)用為在宏定義的參數(shù)列表中寫(xiě)入全局變量名,在宏定義的字符串中寫(xiě)入所述全局變量名。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用包括 所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型和全局變量名,并在宏定義的字符串中寫(xiě)入以返回函數(shù)形式的全局變量的聲明; 所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的定義為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型、全局變量名、以及所述全局變量的初始值,并在宏定義的字符串中寫(xiě)入全局變量的類型以及返回函數(shù)形式的全局變量的賦值; 所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的調(diào)用為在宏定義的參數(shù)列表中寫(xiě)入全局變量名,在宏定義的字符串中寫(xiě)入返回函數(shù)形式的全局變量。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,當(dāng)不支持全局變量使用方式的開(kāi)發(fā)平臺(tái)運(yùn)行支持全局變量使用方式開(kāi)發(fā)平臺(tái)的應(yīng)用程序時(shí),獲取所述支持全局變量使用方式開(kāi)發(fā)平臺(tái)的應(yīng)用程序的全局變量信息,將所述全局變量信息保存在所述結(jié)構(gòu)體中,以使得所述不支持全局變量使用方式的開(kāi)發(fā)平臺(tái)成功運(yùn)行所述應(yīng)用程序。
5.一種全局變量管理裝置,其特征在于,包括 查詢單元,用于查詢開(kāi)發(fā)平臺(tái)是否支持全局變量使用方式; 第一定義單元,用于在所述查詢單元查詢到所述開(kāi)發(fā)平臺(tái)支持全局變量使用方式時(shí),通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用; 第二定義單元,用于在所述查詢單元查詢到所述開(kāi)發(fā)平臺(tái)不支持全局變量使用方式時(shí),為所述開(kāi)發(fā)平臺(tái)定義存儲(chǔ)全局變量的結(jié)構(gòu)體,通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用,所述返回函數(shù)為從所述結(jié)構(gòu)體獲取全局變量的函數(shù)。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述第一定義單元用于,所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型和全局變量名,并在宏定義的字符串中寫(xiě)入聲明全局變量; 所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的定義為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型、全局變量名、以及所述全局變量的初始值,并在宏定義的字符串中寫(xiě)入全局變量的類型以及對(duì)所述全局變量的賦值; 所述通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的調(diào)用為在宏定義的參數(shù)列表中寫(xiě)入全局變量名,在宏定義的字符串中寫(xiě)入所述全局變量名。
7.根據(jù)權(quán)利要求5或6所述的裝置,其特征在于,所述第二定義單元用于, 所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型和全局變量名,并在宏定義的字符串中寫(xiě)入以返回函數(shù)形式的全局變量的聲明; 所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的定義為在宏定義的參數(shù)列表中寫(xiě)入全局變量的類型、全局變量名、以及所述全局變量的初始值,并在宏定義的字符串中寫(xiě)入全局變量的類型以及返回函數(shù)形式的全局變量的賦值; 所述通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的調(diào)用為在宏定義的參數(shù)列表中寫(xiě)入全局變量名,在宏定義的字符串中寫(xiě)入返回函數(shù)形式的全局變量。
8.根據(jù)權(quán)利要求5所述的裝置,其特征在于,還包括 獲取單元,用于當(dāng)不支持全局變量使用方式的開(kāi)發(fā)平臺(tái)運(yùn)行支持全局變量使用方式開(kāi)發(fā)平臺(tái)的應(yīng)用程序時(shí),獲取所述支持全局變量使用方式開(kāi)發(fā)平臺(tái)的應(yīng)用程序的全局變量信息; 存儲(chǔ)單元,用于將所述獲取單元獲取的所述全局變量信息保存在所述結(jié)構(gòu)體中,以使得所述不支持全局變量使用方式的開(kāi)發(fā)平臺(tái)成功運(yùn)行所述應(yīng)用程序。
全文摘要
本發(fā)明的實(shí)施例公開(kāi)了一種全局變量管理方法及裝置,涉及計(jì)算機(jī)領(lǐng)域,能夠使不同平臺(tái)采取統(tǒng)一的全局變量使用方式,提高平臺(tái)代碼的可移植性。本發(fā)明的方法包括查詢開(kāi)發(fā)平臺(tái)是否支持全局變量使用方式;若所述開(kāi)發(fā)平臺(tái)支持全局變量使用方式,則通過(guò)宏定義實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用;若所述開(kāi)發(fā)平臺(tái)不支持全局變量使用方式,則為所述開(kāi)發(fā)平臺(tái)定義存儲(chǔ)全局變量的結(jié)構(gòu)體,通過(guò)宏定義并以返回函數(shù)的形式實(shí)現(xiàn)所述開(kāi)發(fā)平臺(tái)全局變量的聲明、定義及調(diào)用,所述返回函數(shù)為從所述結(jié)構(gòu)體獲取全局變量的函數(shù)。本發(fā)明的實(shí)施例主要用于全局變量的使用過(guò)程中。
文檔編號(hào)G06F9/44GK102841782SQ201110171640
公開(kāi)日2012年12月26日 申請(qǐng)日期2011年6月23日 優(yōu)先權(quán)日2011年6月23日
發(fā)明者開(kāi)平 申請(qǐng)人:騰訊科技(深圳)有限公司