易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

SQLite C/C++接口介绍

这篇文章是使用SQLite C/C++接口的一个概要介绍和入门指南。
由于早期的SQLite只支持5个C/C++接口,因而非常容易学习和使用,但是随着SQLite功能的增强,新的C/C++接口不断的增加进来,到现在有超过150个不同的API接口。这往往使初学者望而却步。幸运的是,大多数SQLite中的C/C++接口是专用的,因而很少被使用到。尽管有这 ......

Delphi 与 C/C++ 数据类型对照表

Delphi 与 C/C++ 数据类型对照表
Delphi数据类型C/C++
ShorInt
8位有符号整数
char
Byte
8位无符号整数
BYTE,unsigned short
SmallInt
16位有符号整数
short
Word
16位无符号整数
unsigned short
Integer,LongInt
32位有符号整数
int,long
Cardinal,LongWord/DWORD
32位无符号整数
unsigned long
Int6 ......

C 语言数据对齐

#include <stdio.h>    
struct Foo1
{
   char a;
   int  b;
   char c;
   int  d;
};
#pragma pack (2)
struct Foo2
{
   char a;
   int  b;
   char c;
   int  d; ......

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;
      & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号