eworker 发表于 2011-5-21 15:41:05

请教一个UIP问题

在UIP的代码中,很多地方用了register,比如:
void
uip_process(u8_t flag)
{
register struct uip_conn *uip_connr = uip_conn;

#if UIP_UDP
if(flag == UIP_UDP_SEND_CONN) {
    goto udp_send;
}
#endif /* UIP_UDP */

uip_sappdata = uip_appdata = &uip_buf;
......

请问为什么要加register?

eworker 发表于 2011-5-21 15:46:29

被标识为register的变量存储在cpu寄储器中,cpu访问寄存器内存极快,一般可用于,大循环体内,提高循环效率。
用法:register int nTmp;

aozima 发表于 2011-5-21 17:40:12

现在的编译器大多都不需要 register 了,不用也照样尽量给优化到寄存器里面.
但会继续兼容老的源代码.
页: [1]
查看完整版本: 请教一个UIP问题