• 【C补充】结构体的内存分配,匈牙利命名法


      1 //LineTable
      2 //先是联合体union,,后是结构体,复合型数据类型的一种自定义类型
      3 
      4 
      5 //内存分配,按整分配。和CPU相关,数据总线
      6 //结构体中内存的分配
      7 /*
      8     内存空洞大,更容易中病毒
      9     
     10     char a[4] = "xyw";
     11 
     12     char b = 'x';
     13     char c = 'y';
     14     char d = 'w';
     15 
     16 
     17     内存分配, 有效字节
     18 */
     19 /*
     20 
     21   特点一
     22 
     23   
     24   如果定义结构体:
     25   int a;
     26   char b;
     27   int c;
     28   char d;
     29   
     30   按照单一型数据类型进行查找   16byte
     31 
     32 
     33   int a;
     34   char b;        //合并   12byte
     35   char c;
     36   int d;            
     37   
     38   按大到小或者按小到大;
     39   int a;
     40   int b;
     41   char c;
     42   char d;
     43 */
     44 
     45 //特点二
     46 /*
     47 
     48   结构体有等值运算
     49   返回多个值,封到结构体。引用,指针
     50 */
     51 
     52 
     53 /*
     54     传参,传地址;
     55     省内存,牺牲效率。
     56     递归,开辟栈区,浪费了内存。
     57     拷贝构造函数。
     58     取引用。
     59 */
     60 
     61 #include <iostream>
     62 
     63 using namespace std;
     64 
     65 
     66 
     67 #define MAX 3
     68 
     69 //_DATA_使用手册,开发手册
     70 //开发,,,写函数(封装函数)  调用函数
     71 //设计的时候,扩展
     72 //代码的封装(函数封装),数据的封装
     73 //函数指针,扩展性。
     74 //
     75 
     76 /*
     77 //函数指针             返回值,参数,参数类型
     78     int  Add(int a, int b)
     79     {
     80         int c = a+b;
     81         return c;
     82     }
     83 
     84     int Sub(int  Add(int , int ), int a, int b)
     85     {
     86                 
     87     }
     88 */
     89 typedef struct _DATA_
     90 {
     91     int iAge;
     92     char szName[20];
     93 }Data,*pData;
     94 
     95 typedef struct _LINETABLE_
     96 {
     97     //    Data DataTemp;
     98     //(匈牙利)Lp 长整型指针命名    char(影响计算机执行效率。)dw wchar(16位) wuchar Long  dword
     99     
    100     pData pDataTemp;
    101 
    102     int iMax;
    103     int iSize;
    104 }LineTable, *LineTable;
    105 
    106 
    107 //匈牙利命名法
    108 class CLineTable
    109 {
    110     public:
    111 
    112 
    113         
    114     protected:
    115     
    116     private:
    117 
    118     
    119 };
    120 
    121 bool CLineTable::InitLineTable(LineTable& LineTableTemp)
    122 {
    123     LineTableTemp.iMax = MAX;
    124     LineTableTemp.pDataTemp = new Data[LineTable.iMax];    
    125     
    126     if(LineTableTemp.pDataTemp == NULL)
    127     {
    128         return false;
    129     }
    130     else
    131     {
    132         memset(LineTableTemp.pDataTemp,0,sizeof(Data)*LineTable.iMax);
    133 
    134         LineTableTemp.iSize = 0;
    135     }
    136 }
    137 
    138 //access
    139 //query
    140 
    141     
    142 int main()
    143 {
    144     LineTable LineTableTemp = {0};
    145     
    146     
    147     return 0;
    148 }
    149 /*
    150 
    151 //函数指针
    152 #include <iostream>
    153 
    154 using namespace std;
    155 
    156 
    157 int Add(int a,int b);
    158 
    159 
    160 int Sub(int Add(int,int),int a,int b);
    161 
    162 
    163 void main()
    164 {
    165 
    166 
    167 
    168 /*    char* p = (char*)0x12ff3d;
    169     char a[4] = "xyz";
    170 
    171     *p = 'A'; 
    172 
    173     char b = 'x';
    174     char c = 'y';
    175     char d = 'z';*/
    176 
    177 
    178     cout<<Sub(Add,1,2)<<endl;
    179 
    180 
    181     
    182 }
    183 
    184 
    185 int Add(int a,int b)
    186 {
    187     int c = a+b;
    188 
    189     return c;
    190 }
    191 
    192 
    193 int Sub(int Add(int,int),int a,int b)
    194 {
    195 
    196 
    197     return Add(a,b);
    198 
    199 }
    200 
    201 */
  • 相关阅读:
    我的第一篇博客缓存显示图片
    CSLA.Net 学习 WCF服务端与客户端配置
    CSLA.Net 学习 刚接触
    [转] DevExpress 第三方控件汉化的全部代码和使用方法
    java版飞信协议实现
    [转]C#反射技术之一读取和设置类的属性
    NHibernate帮助类
    Oracle 11g 精简客户端打包 201206更新
    Mygeneration模板(NHibernate)生成,根据kdup的修改而来
    [转]TransactionScope应用
  • 原文地址:https://www.cnblogs.com/Lee-geeker/p/3384232.html
Copyright © 2020-2023  润新知