易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C+语言struct深层探索 (转)

C/C+语言struct深层探索     
  
  作者:宋宝华               出处:PConline 
  
  1.   struct的巨大作用 
    面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用 struct是区别一个开发人员是否具备丰富开发经历的标志。 
  
    在网络协议、通信控制、嵌入式系统的C/C++编程中,我们经常要传送的不是简单的字节流(char型数组),而是多种数据组合起来的一个整体,其表现形式是一个结构体。 
  
    经验不足的开发人员往往将所有需要传送的内容依顺序保存在char型数组中,通过指针偏移的方法传送网络报文等信息。这样做编程复杂,易出错,而且一旦控制方式及通信协议有所变化,程序就要进行非常细致的修改。 
  
    一个有经验的开发者则灵活运用结构体,举一个例子,假设网络或控制协议中需要传送三种报文,其格式分别为packetA、packetB、packetC: 
  
  struct   structA   
  { 
  int   a; 
  char   b; 
  }; 
  
  struct   structB   
  { 
  char   a; 
  short   b; 
  }; 
  
  struct   structC 
  { 
  int   a; 
  char   b; 
  float   c; 
  } 
    优秀的程序设计者这样设计传送的报文: 
  
  struct   CommuPacket 
  { 
  int   iPacketType;  //报文类型标志 
  union      //每次传送的是三种报文中的一种,使用union 
  { 
&nbs


相关文档:

JSTL之c标签

Student.java:
package com.myapp.beans;
 
public class Student {
 
       private String sno;
 
       private String sname;
 
       private Integer sage;
 
  &nbs ......

C/C++传递二维数组

C/C++传递二维数组 - [IT资料]
//c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下:
//方法一, 形参给出第二维的长度。
#include <stdio.h>
void func(int n, char str[][5])
{
           int i;
      & ......

简述C和C++程序员学习历程

哈哈!有幸在某网站发现这篇文章,读罢,觉得蛮有道理,发来大家一起共勉之   
总是被同学们问到,如何学习C和C++才不茫然,才不是乱学,想了一下,这里给出一个总的回复。
  一家之言,欢迎拍砖哈。
  1、可以考虑先学习C.
  大多数时候,我们学习语言的目的,不是为了成为一个语言专家,而是希望 ......

c/C++内存分配—new,malloc,GlobalAlloc详解

                    
                    C++内存分配秘籍—new,malloc,GlobalAlloc详解
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号