一道好题,解决大大地给分

ailikelhl   2007-1-12 10:23 楼主
C51编译环境。

main.h文件内容如下:
#ifndef MAIN_H
#define MAIN_H

typedef unsigned int u16_t;
typedef u16_t ip4addr_t[2];
typedef ip4addr_t ipaddr_t;


#define IPADDR0            192
#define IPADDR1            168
#define IPADDR2            119
#define IPADDR3              1

#endif
//------------------------------------------------------------

接下来,main.c中文件如下

#include "main.h"

const ipaddr_t hostaddr;

hostaddr={(IPADDR0 << 8) | IPADDR1,(IPADDR2 << 8) | IPADDR3)};
//以下省略
//------------------------------------------------------------
编译后出现如下问题:
*** ERROR C231 IN LINE 5 OF MAIN.C: 'uip_hostaddr': redefinition
*** ERROR C141 IN LINE 5 OF MAIN.C: syntax error near ')'
//------------------------------------------------------------

请问为什么??? 熬熬给分!!!

回复评论 (8)

不明白为什么要这样定义,换成其他方式也可以的啊!我认为按下面改可能可以通过。
改为:
#include "main.h"

const ipaddr_t hostaddr={(IPADDR0 << 8) | IPADDR1,(IPADDR2 << 8) | IPADDR3)};

//以下省略
点赞  2007-1-12 10:44
谢谢,对这是一个错误,但是还有一个错误。
更改后,编译后如下,发现如下错误 :
*** ERROR C141 IN LINE 3 OF MAIN.C: syntax error near ')'

请继续解答,谢谢
点赞  2007-1-12 11:30
hostaddr={(IPADDR0 << 8) | IPADDR1,(IPADDR2 << 8) | IPADDR3)};


我顶你个肺

少了个(
仔细看看
点赞  2007-1-12 12:01
可以结贴了吗
点赞  2007-1-12 12:03
看仔细了再来问别人呀,简单失误,不要故作高深了,
点赞  2007-1-12 13:18
简单的错误
也来这里问
欠缺E文以及实际调试经验
估计才开始写这些代码

继续努力
点赞  2007-1-12 14:09
就是多了一个),仔细看一下就看出来了啊
点赞  2007-1-12 16:45
谁故作高深了,OK了,多谢批评。
点赞  2007-1-12 18:30
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复