数据结构
Cool_Bob
这个作者很懒,什么都没留下…
展开
-
堆和栈的区别
堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态转载 2014-05-09 15:59:34 · 512 阅读 · 0 评论 -
Linux驱动程序框架介绍
Linux驱动程序框架。 一、linux的设备驱动程序与外界的接口可以分为三个部分: 1.驱动程序与操作系统内核的接口。通过file_operations(include/linux/fs.h)数据结构来完成的。 2.驱动程序与系统引导的接口。这部分利用驱动程序对设备进行初始化。 3.驱动程序与设备的接口。这部分描述了驱动程序如何与设备进行交互,与具体的设备密切转载 2014-06-26 23:39:43 · 528 阅读 · 0 评论 -
内存动态分配与释放
1. C语言的函数malloc和free (1) 函数malloc和free在头文件中的原型及参数 void * malloc(size_t size) 动态配置内存,大小有size决定,返回值成功时为任意类型指针,失败时为NULL。 void free(void *ptr) 释放动态申请的内存空间,调用free()后ptr所指向的内存空间被收回,如果转载 2014-07-08 09:18:42 · 588 阅读 · 0 评论 -
有关 sizeof和strlen的总结
先看看sizeof() 一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。其实可以简单的理解sizeof是征对"类型"的。 二、sizeof的使用方法 1、用于数据类型 sizeof使用形式转载 2014-07-13 17:44:58 · 458 阅读 · 0 评论 -
sprintf使用
对于熟悉C的人来说,sprintf并不陌生,在很多情况下,一般都会使用sprintf来代替itoa.sprintf函数的原型是: int sprintf(char* str, const char* format, ...); 除了前两个参数类型固定外,后面可以接任意多个参数,格式化输出一个字符串: 1) 整数格式化输出 如果要将数字 3915 保存到字符串str中/*假定转载 2014-08-07 17:10:52 · 590 阅读 · 0 评论 -
C语言#pragma预处理
在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma 指令对每个编译器给出了一个方法,在保持与C 和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #pragma para 其中para 为参数,下面转载 2014-07-13 18:14:39 · 445 阅读 · 0 评论