WMHNZZ
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2010-11-08
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2093回复:3

c语言问题,高手来支援啊

楼主#
更多 发布于:2008-08-28 17:53
我用C语言做一个des/3des算法,在PC机上可以运行,但是移植到51上的时候,发现片上RAM空间不够。因此我修改我的DES/3DES程序,根据我的系统是分时使用的特点,我决定复用RAM空间,因此我采用了联合体变量对RAM进行复用。我在主程序MAIN.C中定义了联合体变量
  union
  {
     struct uart_Host
       {
         unsigned char  RxBuffer[210];      /*Used for PC communication receiver buffer */
         unsigned char  TxBuffer[210];      /*The buffer for PC communication transmited used */
       }Host;
     struct des_setting                              //for des/3des
      {
        long kl[32];
        long kn[32];
        long kr[32];
       struct  str
        {
            unsigned long ek[32];
            unsigned long dk[32];
        } des_ctx;
         。。。
      }  
   。。。                    //for other using
  } u_ram;
在我的main主程序中一切正常,但是当我的des.c中引用这个u_ram的时候就出现问题了,
我在DES.C中首先声明
   extern union u_ram;
但是后面引用u_ram的时候,编译系统报错,说u_ram未定义,请问高手这是什么原因造成的。




WMHNZZ
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2010-11-08
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-08-28 17:55
对了,我的编译器是KEIL C51
WMHNZZ
驱动牛犊
驱动牛犊
  • 注册日期2004-05-13
  • 最后登录2010-11-08
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望5点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-08-29 09:15
没人来帮忙啊,不过已解决
lili770222
驱动牛犊
驱动牛犊
  • 注册日期2007-11-14
  • 最后登录2008-09-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-09-06 00:37
在主程序了也应该声明
游客

返回顶部