c语言各编程技巧.doc

c语言各编程技巧.doc

ID:59255989

大小:19.50 KB

页数:4页

时间:2020-09-08

c语言各编程技巧.doc_第1页
c语言各编程技巧.doc_第2页
c语言各编程技巧.doc_第3页
c语言各编程技巧.doc_第4页
资源描述:

《c语言各编程技巧.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、#definea(x,y)+(x*2+y)aaa=(3a(1,1));运行后aaa==3+(1*2+1)===6;2、#defineIP_PCB/*ipaddressesinnetworkbyteorder*/ip_addr_tlocal_ip;ip_addr_tremote_ip;/*Socketoptions*/u8_tso_options;/*TypeOfService*/u8_ttos;/*TimeToLive*/u8_tttl/*linklayeraddressresolutionhint*/IP_PCB_ADDRHINTstructi

2、p_pcb{/*CommonmembersofallPCBtypes*/IP_PCB;};宏定义IP_PCB下的多个变量由于在多个结构体中使用,故使用该宏定义,使用了3、串口数据接收协议定义相应的结构体对协议进行说明,在接受的第一个字节时将数据流的地址赋值给结构体的首地址,这样每接收到一个字节的数据就会自动添加到结构体相对应的协议变量中,例1:typedefstruct{uint8_tstart_byte;//0x2uint8_taddr;uint8_tupdate_byte;//0x35uint8_ttype;//softwareorfontuint8_tdata_l

3、ength[2];uint8_ts_data_pack_sn[2];uint8_tdata[10];uint8_tend_byte;//0x3uint8_tcheck_sum1;uint8_tcheck_sum2;}update_soft_datapack_t;update_soft_datapack_t*update_soft_datapack;uint8_tdata[14]={1,2,3,4,5,5,8,8,0x0a,0x0b,0x0b,0x03,0x31,0x32};uint8_t*datat;datat=data;*datat++=b;update_soft_da

4、tapack=(update_soft_datapack_t*)(data);在接受完毕之后,将所需数据传递给上一层的数据或同样定义的结构体如:uint8_tdata_next[3];memcpy(data_next,update_soft_datapack->data,3);。。。例2:当将某一个数组作为参数传递时强制转换为结构体时,定义如下typedefstruct{uint8_tstart_byte;//0x2uint8_taddr;uint8_tupdate_byte;//0x35uint8_ttype;//softwareorfontuint8_tdata_le

5、ngth[2];uint8_ts_data_pack_sn[2];uint8_tdata[10];uint8_tend_byte;//0x3uint8_tcheck_sum1;uint8_tcheck_sum2;}update_soft_datapack_t;update_soft_datapack_tupdate_soft_datapack;HandleUpdateSoftDatapack((update_soft_datapack_t*)s);//s为int*voidHandleUpdateSoftDatapack(update_soft_datapack_t*ind

6、)4、/*********************************************************************//*************************struct链表结构**************************//*********************************************************************/structsys_timeo{structsys_timeo*next;u32_ttime;sys_timeout_handlerh;void*arg;#ifL

7、WIP_DEBUG_TIMERNAMESconstchar*handler_name;#endif/*LWIP_DEBUG_TIMERNAMES*/};对于next下一结构体赋值时,通过判断是否为空添加入链表如for(t=next_timeout;t!=NULL;t=t->next){timeout->time-=t->time;if(t->next==NULL

8、

9、t->next->time>timeout->time){if(t->next!=NULL){t->next->time-=timeout->time;}timeo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。