搜索
bottom↓
回复: 7

头文件编译错误

[复制链接]

出0入0汤圆

发表于 2013-1-29 15:34:17 | 显示全部楼层 |阅读模式
自己写的头文件

#ifndef    Display_H
#define     Display_H
  
extern   void Display_Led(uint8 *pBuffer);
extern   uint8 LedDisplayBuffer[8];
           
#endif



定义和调用如下:

void Display_Led(uint8 *pBuffer)//显示
{ static uint8 LedDisPos = 0 ;
  if(g_bSystemTime2Ms == 1)
  {       
    g_bSystemTime2Ms = 0;
           SendLedBitData(8);   //消隐,只需要设置位选不为0~7 即可
    if(pBuffer[LedDisPos] == '-') //显示'-'号
     {
       SendLedSegData(table[16]) ;
     }
     else
     {
       SendLedSegData(table[pBuffer[LedDisPos]]) ;
     }
     SendLedBitData(LedDisPos);
     if(++LedDisPos > 7)
     {
        LedDisPos = 0 ;
     }
  }
}



#include<reg51.h>
#include"MacroAndConst.h"
#include"Display.h"
#include"Sw.h"
#include"T.h"

void main()
{   
     T0_Init ();
         LedDisplayBuffer[0] = 1 ;
     LedDisplayBuffer[1] = 0 ;
     LedDisplayBuffer[2] = '-' ;
     LedDisplayBuffer[3] = 2 ;
     LedDisplayBuffer[4] = 0 ;
     LedDisplayBuffer[5] = '-' ;
     LedDisplayBuffer[6] = 3 ;
     LedDisplayBuffer[7] = 0 ;
   
       
    while(1)
    {
      Display_Led(LedDisplayBuffer);
          
    }
}



编译错误如下:
SRC\DISPLAY.H(5): error C141: syntax error near '*', expected ')'
SRC\DISPLAY.H(6): error C129: missing ';' before 'LedDisplayBuffer'

实在是不知道哪的问题,求教各位了!应该不是中英文标点的问题,我挨个改过了。
谢谢各位了!

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入25汤圆

发表于 2013-1-29 15:54:25 | 显示全部楼层
uint8  定义在那个文件里?   要么在Display.H 你包含定义uint8的头文件,要么在c文件include 时将定义uint8的头文件放在 #include “Display.H ”的前面。

猜你的 uint8 在 #include"T.h"你吧?

#include<reg51.h>
#include"T.h"
#include"MacroAndConst.h"
#include"Display.h"
#include"Sw.h"

试试~~~~

出0入0汤圆

 楼主| 发表于 2013-1-29 16:08:00 | 显示全部楼层
墨非 发表于 2013-1-29 15:54
uint8  定义在那个文件里?   要么在Display.H 你包含定义uint8的头文件,要么在c文件include 时将定义uint8 ...

你好  uint8 在头文件 #include"MacroAndConst.h"中
我的每个C程序都包含了  #include"MacroAndConst.h"

出0入25汤圆

发表于 2013-1-29 16:18:18 | 显示全部楼层
确保每个C程序都是 #include “Display.H ” 在 #include"MacroAndConst.h"之后。。。。

出0入0汤圆

 楼主| 发表于 2013-1-29 16:23:36 | 显示全部楼层
墨非 发表于 2013-1-29 16:18
确保每个C程序都是 #include “Display.H ” 在 #include"MacroAndConst.h"之后。。。。

改过了,真的可以了,非常感谢。
为什么会这样呢?他提示语法错误,我就一直在找语法。

出0入0汤圆

发表于 2013-1-29 21:48:39 | 显示全部楼层
墨非 发表于 2013-1-29 16:18
确保每个C程序都是 #include “Display.H ” 在 #include"MacroAndConst.h"之后。。。。

请问为毛?

出0入25汤圆

发表于 2013-1-30 09:38:40 | 显示全部楼层
编译器处理#include 是属于预处理,应该也是类似宏定义的 资源等价替换,有顺序的。
拙见,望指正。。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 12:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表