宏與子程序都可以用一個名字定義一段程序,以簡化源程序的結構和設計。二者的區別:
1、在源程序中,通過書寫宏名來引用宏,而子程序是通過CALL指令來調用;
2、宏調用是通過宏擴展來實現的,宏引用多少次,就相應擴展多少次,所以,引用宏不會縮短目標程序;而子程序代碼在目標程序中只出現一次,調用子程序是執行同一程序段,因此,目標程序也得到相應的簡化
子程序
優點:模塊化,節省內存,可被多次調用,編程效率高。
缺點:額外開銷(保存返回地址,計算轉向地址,傳遞參數等)大,增加了執行時間。適用于子功能代碼較長、調用比較頻繁的情況。
宏調用:
優點:參數傳送簡單,執行效率高。
缺點:不節省空間,適用于子功能代碼較短、傳參較多的情況。