打印

help:syntax error near 'extern'

[复制链接]
4284|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
t-z-sh|  楼主 | 2008-3-16 10:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问我的kc编译时报错:syntax error near 'extern'。详情是这样的:我一个c文件里声明了
void delay_100us(register int hundred_us)//声明‘register ’类型增强可靠性。
  {    unsigned  char l;
    unsigned  int m;
   for(m=0;m<hundred_us;m++)
    {
      for(l=0;l<21;l++)
      ;
    }
   }
void delay_bits(register char bits){//200us per bit-----5kHz.
     delay_100us(bits);
     delay_100us(bits);
     }
在另外一个文件调用delay_bits():
    。。。。。
      while(RSSI)  
    {      extern delay_bits(1);
           extern set_ENABLE();
           extern delay_bits(15);
    。。。。。。。
两个调用都报那个错,为什么呢?

相关帖子

沙发
code| | 2008-3-16 10:37 | 只看该作者

把extern 去掉试试看

      while(RSSI)  
    {      extern delay_bits(1);
           extern set_ENABLE();
           extern delay_bits(15);
    。。。。。。。
两个调用都报那个错,为什么呢?

使用特权

评论回复
板凳
t-z-sh|  楼主 | 2008-3-16 11:04 | 只看该作者

re code

现在只保留 一个调用:extern delay_bits(15);
报syntax error near '15'   奇怪,我原型函数里形参是声明register char 了啊!

去掉extern后报没有函数原型。

使用特权

评论回复
地板
computer00| | 2008-3-16 11:21 | 只看该作者

晕...没见过这样调用的...

void delay_100us(register int hundred_us);
void delay_bits(register char bits);

      while(RSSI)  
    {      delay_bits(1);
           set_ENABLE();
           delay_bits(15);

使用特权

评论回复
5
t-z-sh|  楼主 | 2008-3-16 11:51 | 只看该作者

还是看不明白呀

使用特权

评论回复
6
孤星119| | 2008-3-16 17:26 | 只看该作者

确实没有看过这样调用的,可以在第二个文件:

main()之前就申明,格式:
......
extern delay_bits(1);
extern set_ENABLE();
extern delay_bits(15);
............
main()
{
...........
}

使用特权

评论回复
7
t-z-sh|  楼主 | 2008-3-16 19:53 | 只看该作者

多谢!

我这样试了果然好了。
另外发现似乎有形参的就需要提前声明,没有形参的函数直接在调用时加个extern就不报错。到底是不是这样啊?我用的是Keil U2

使用特权

评论回复
8
computer00| | 2008-3-16 22:16 | 只看该作者

函数实体在XXX.c文件中定义,函数原型在对应的.h文件中声明

函数的声明一般前面不用加extern,直接写上原型就行了。
在使用时,include对应的.h文件。


//xxx.h文件
void delay_100us(register int hundred_us);
void delay_bits(register char bits);

//main.c文件

#include "xxx.h"

      while(RSSI)  
    {      delay_bits(1);
           set_ENABLE();
           delay_bits(15);

使用特权

评论回复
9
t-z-sh|  楼主 | 2008-3-17 09:35 | 只看该作者

多谢几位!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

48

帖子

0

粉丝