一道好题,解决大大地给分
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 ') '
//------------------------
请问为什么??? 熬熬给分!!!
[解决办法]
不明白为什么要这样定义,换成其他方式也可以的啊!我认为按下面改可能可以通过。
改为:
#include "main.h "
const ipaddr_t hostaddr={(IPADDR0 < < 8) | IPADDR1,(IPADDR2 < < 8) | IPADDR3)};
//以下省略
[解决办法]
hostaddr={(IPADDR0 < < 8) | IPADDR1,(IPADDR2 < < 8) | IPADDR3)};
我顶你个肺
少了个(
仔细看看