音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

一個奇怪的問題,把一個C51文件拆分編譯后比原來大很多!

作者:hqfmcu201 欄目:單片機
一個奇怪的問題,把一個C51文件拆分編譯后比原來大很多!
把一個C51文件拆分為幾個不同文件編譯后,比沒有拆分前大很多.請各位大俠幫忙。困惑:( 不知是什么原因。

2樓: >>參與討論
用戶
曾折分過一個2000行的文件,hex文件沒什么變動.
 
3樓: >>參與討論
hqfmcu201
哎,我的程序有近15000行,有點多,我想拆了,沒想HEX一點點變大
實在搞不懂咋會事。能看到data數(shù)據(jù)量每拆分一點就變大,code數(shù)據(jù)量也一點一點變大。我的一些程序用了較多的全局變量,不知是否因為這個原因呢?


4樓: >>參與討論
wjc3k
在主程序文件里面申明.
在其它文件里面標識變量是外部的. 從編譯原理的角度來說,是不會變大的.

5樓: >>參與討論
mabaoqiu
應(yīng)該不會!
看看你的編譯選項!

6樓: >>參與討論
ketp
大一點是正常的.
搞個小程序看看編譯后的匯編就清楚了

7樓: >>參與討論
將軍令
應(yīng)該是不會,不知道你怎么拆的
 
8樓: >>參與討論
hqfmcu201
我是把液晶顯示和通迅部分的程序單獨從主程序中拆分出來,
分成幾個C文件。并在頭文件里聲明單個C文件的函數(shù).

// 我采用的方法如下:
// 把以前的一個大程序拆分成一個主程序Main.c,一個液晶顯示程序Lcm.c,
//一個通迅處理程序Scom.c,并把這些文件加入工程中。其中在主程序里包
//含Lcm.c的頭文件bb.h, Scom.c的頭文件cc.h,以使它們聯(lián)系起來。
//這個模式是我參考一個完整的工程項目來這樣拆分的。
//在Lcm.c中引用Main.c的變量時,我進行了extern的外部聲明,也沒有出錯。
//若Main.c中引用了Lcm.c中的變量時,也進行了extern的外部聲明,也沒出錯。
//現(xiàn)在的問題是把原先的一個大的C文件拆分為幾個C文件編譯后要比以前的代碼
//量大得多。實在搞不懂,不應(yīng)該這樣的啊。程序框架如下:

// 主函數(shù)Main.c :
   #include   "aa.h"
   #include   "bb.h"        //包含Lcm.c頭文件
   #include   "cc.h"        //包含Scom.c頭文件
   .
   .
   .
  void  main()
      {
         .
         .
         .
         JJJ();          //來自于Lcm.c文件
         KKK();          //來源于Scom.c文件
         .
         .
         .
      }
//------------------------
//Lcm.c文件
#include "aa.h"
#inlude  "bb.h"
       uchar CharLen;   //變量定義
       .
       .
       .
   void JJJ()           //函數(shù)
       {
         .
         .
         .
       
       }
//----------------------------
Lcm.c的頭文件是 bb.h, bb.h如下:
#ifndef  _bb_h_
#define  _bb_h_
         #define MMM   55    //常量宏定義
         .
         .
         .
         extern void  JJJ();  //函數(shù)聲明
         .
         .
         .
#endif

//-----------------------------
Scom.c文件

#include "aa.h"
#include "cc.h"
     uchar SeriDataLen;     //變量定義
     .       
     .
     .
     void KKK()             //函數(shù)
         {
           .
           .
           .
         }

//----------------------------
Scom.c文件頭文件 cc.h
#ifndef  _cc_h_
#define  _cc_h_
         #define  WWW     54  //常量聲明
         .
         .
         .
         extern void KKK();  //聲明函數(shù)
         .
         .
         .
#endif
//------------------------

請教各位大俠,到底是什么原因造成代碼長度因文件拆分重編譯后增加呢?


參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請教8051單片機問題
請教各位,市面上有沒有類似于以前手機的黑白液晶屏
簡單而奇怪的問題(有關(guān)AVR的IO口),請各位朋友賜教
keil C 調(diào)試的問題
大家看看我的GAL16V8程序行不行
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號