W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
多模塊程序是由不止一個目標文件組成的程序。這里出現(xiàn)的所有程序都是多模塊程序。它們由C驅(qū)動目標文件和匯編目標文件(加上C庫目標文件)組成?;貞浺幌逻B接程序?qū)⒛繕宋募M合成一個可執(zhí)行程序。連接程序必須把在一個模塊(也就是目標文件)中引用的每個變量匹配到定義該變量的模塊。為了讓模塊A能使用定義在模塊B里的變量,就必須使用extern(外部)指示符。在extern 指示符后面是用逗號隔開的變量列表。這個指示符告訴編譯器把這些變量視為是模塊外部的。也就是說,這些變量可以在這個模塊中使用,但是卻定義在另一模塊中。asm_io.inc文件中就將read_int等程序定義為外部的。
在編譯語言中,缺省情況下變量不可以由外部程序訪問。如果一個變量可以被一個模塊訪問,而這個模塊又不是定義它的,那么在定義它的模塊中,它一定被聲明為global(全局的)。global 指示符就可以用來做這件事情。圖1.7的程序skeleton中的第13行定義了一個全局變量asm main。若沒有這個聲明,就可能會出錯。為什么?因為C代碼將會找不到內(nèi)部的_asm_main變量。
下面是用兩個模塊重寫的以前例子的代碼。子程序(get_int和print_sum)在不同的源文件中,而不是在_asm_main程序中。
上面的例子只有全局的代碼變量;同樣,全局數(shù)據(jù)變量也可以使用一模一樣的方法。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: