OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5304|回复: 2

uip协议中 uip_arp_ipin()函数被#if 0 #endif条件编译以后为什么还能通过编译

[复制链接]

24

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
186
金钱
186
注册时间
2012-12-19
在线时间
3 小时
发表于 2013-4-10 00:13:11 | 显示全部楼层 |阅读模式
#if 0
void
uip_arp_ipin(void)
{
  uip_len -= sizeof(struct uip_eth_hdr);
  /* Only insert/update an entry if the source IP address of the
     incoming IP packet comes from a host on the local network. */
  if((IPBUF->srcipaddr[0] & uip_netmask[0]) !=
     (uip_hostaddr[0] & uip_netmask[0])) {
    return;
  }
  if((IPBUF->srcipaddr[1] & uip_netmask[1]) !=
     (uip_hostaddr[1] & uip_netmask[1])) {
    return;
  }
  uip_arp_update(IPBUF->srcipaddr, &(IPBUF->ethhdr.src));
  
  return;
}
#endif 
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

24

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
186
金钱
186
注册时间
2012-12-19
在线时间
3 小时
 楼主| 发表于 2013-4-10 00:14:48 | 显示全部楼层
我做过实验了
#include<stdio.h>
int main(void)
{
#if 1
printf("z\n");
#endif
#if 0
printf("z1\n");
#endif
}



被#if #endif包括的代码是不被编译器编译的
回复 支持 反对

使用道具 举报

24

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
186
金钱
186
注册时间
2012-12-19
在线时间
3 小时
 楼主| 发表于 2013-4-10 10:49:47 | 显示全部楼层
另外还有个疑问
  /* Only insert/update an entry if the source IP address of the
     incoming IP packet comes from a host on the local network. */

这里的注释说只有局域网才更新arp表,难道uip只支持局域网?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-21 16:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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