码迷,mamicode.com
首页 > 编程语言 > 详细

C语言提高之技术模型层次、学习标准、特点、内存四区、函数调用模型

时间:2015-08-21 15:39:13      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:技术模型层次   内存四区   函数调用模型   c语言   

1、C语言技术模型分层:

         技术分享
其中,接口的封装和设计尤为重要!


2、着重需要培养的能力

(1)接口的封装和设计(业务模型的抽象、功能抽象和封装) ———重中之重!

a.接口api的使用能力;

b.接口api的查找能力(快速上手);

c.接口api的实现能力;

// SOCKETCLIENT_H,一个简单信息系统的封装接口
#ifndef _SOCKETCLIENT_H
#endif  _SOCKETCLIENT_H

#ifdef  __cplusplus  
extern "C" {
#endif

//第一套api函数
//socket客户端环境初始化
int socketclient_init(void **handle); 

//socket客户端报文发送
int socketclient_send(void *handle, unsigned char *buf, int buflen); 

//socket客户端报文接受
int socketclient_recv(void *handle, unsigned char *buf, int *buflen); 

//socket客户端环境释放
int socketclient_destory(void *handle);


//第二套api函数
//socket客户端环境初始化
int socketclient_init2(void **handle); 

//socket客户端报文发送
int socketclient_send2(void *handle, unsigned char *buf, int buflen);

//socket客户端报文接受
int socketclient_recv2(void *handle, unsigned char **buf, int *buflen);
int socketclient_Free(unsigned char **buf);  //add

//socket客户端环境释放
int socketclient_destory2(void **handle);

//技术点分析:
//1级指针 
//2级指针
//void **handle类型封装的概念、 业务模型的封装的概念

#ifdef  __cplusplus
}
#endif

#endif


(2)建立正确程序运行内存布局图(印象图)———深刻理解指针的关键!

a.内存四区模型图 ;

b.函数调用模型图 ;

4、C/C++学习特点:学习、理解、应用(动手)、做项目


5、内存四区专题

(1)数据类型可理解为创建变量的模子——是固定内存大小的别名。
         数据类型的作用:编译器预算对象(变量)分配的内存空间大小。
         可以给已存在的数据类型起别名typedef。
         既能读又能写的内存对象,称为变量;若一旦初始化后不能修改的对象则称为常量。
         变量:1、对内存,可读可写;2、通过变量往内存读写数据;3、不是向变量读写数据,而是向变量所代表的内存空间中写数据;

(2)内存四区的建立流程

         技术分享
流程说明:
1、操作系统把物理硬盘代码load到内存
2、操作系统把c代码分成四个区
3、操作系统找到main函数入口执行

(3)内存四区各区元素分析

          技术分享

指针指向谁,就把谁的地址赋给指针;

指针变量  和  指针所指向的内存空间  是两个不同的概念;

理解指针的关键——理解内存块!没有内存哪来的指针!要清楚的知道内存来自何方(哪个区),何时消失,消失往哪里!

          技术分享
(4)函数调用模型

      技术分享

      技术分享




版权声明:本文为博主原创文章,未经博主允许不得转载。

C语言提高之技术模型层次、学习标准、特点、内存四区、函数调用模型

标签:技术模型层次   内存四区   函数调用模型   c语言   

原文地址:http://blog.csdn.net/songshimvp1/article/details/47813665

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!