Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

浅谈结构体及Linux下内存分配原则

浅谈结构体及Linux下内存分配原则

结构体在程序中的应用是很广泛的,要处理的问题越复杂,数据量越多月杂,就越需要用到结构体。比如网络,内核,驱动等等。熟练使用结构体对每个程序员都是至关重要的。一个好的结构体不仅能使程序体系结构清晰,而且使得操作灵活,可扩展性强。linux网络之所以很强大,这和它里设计合理的数据结构有很大关系。结构体定义:structa{intxx:4;intyy:4;};结构体初始化:方式一:structaaa={xx:2,yy:3};方式二:structacc={.xx=...
关于C语言中结构体字节对齐问题

关于C语言中结构体字节对齐问题

一、什么是对齐,以及为什么要对齐:1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按...
字符驱动设计----mini2440 LED驱动设计之路

字符驱动设计----mini2440 LED驱动设计之路

大多数书籍在介绍字符驱动过于理论化,纵览一章都是些文字,再附上一些零碎的代码,看的人头晕,时间长了自然就不想看了。 对于驱动的学习,刚开始不能过于理论化,一定要结合实际,要不然像空中楼台,住在上面,心里老感觉不踏实。那么如何入手呢?我觉得三点是很重要的:1 驱动设计的总体框架(对于每种类型的驱动设计,最好画出模型图)2 参考现有实例化的驱动3 针对某一具体硬件,自己写驱动来实现接下来以字符驱动设计为例,也是mini2440led驱动实现。1 字符设备驱动模...
U-Boot移植过程中的运行地址和装载地址的区别

U-Boot移植过程中的运行地址和装载地址的区别

uboot移植涉及到底层硬件的设置,因此需要掌握UART、系统时钟频率、NOR FLASH、NAND FLASH、SDRAM、网卡、存储控制器等硬件的功能及配置,这些都可以参照相应开发板的芯片手册来完成,没有什么大的问题。在移植过程中,一直困扰我的是PIC(代码无关性)问题,即运行地址和加载地址的区别,看过网上很多关于这两者的介绍,感觉懂一点,却一直不知所然。在参考大量的文献下,算是得了一点心得。 首先来了解下运行地址及加载地址的区别 运行地址:也叫链...
《APUE》:对各个标准I/O流打印缓冲状态

《APUE》:对各个标准I/O流打印缓冲状态

《Unix环境高级编程》这本书附带了许多短小精美的小程序,我在阅读此书的时候,将书上的代码按照自己的理解重写了一遍(大部分是抄书上的),加深一下自己的理解(纯看书太困了,呵呵)。此例子在Ubuntu 10.04上测试通过。相关链接《UNIX环境高级编程》(第二版)apue.h的错误 http://www.linuxidc.com/Linux/2011-04/34662.htmUnix环境高级编程 源代码地址 http://www.linuxidc.com/...
《APUE》:递归遍历目录层次结构,并按文件类型计数

《APUE》:递归遍历目录层次结构,并按文件类型计数

《Unix环境高级编程》这本书附带了许多短小精美的小程序,我在阅读此书的时候,将书上的代码按照自己的理解重写了一遍(大部分是抄书上的),加深一下自己的理解(纯看书太困了,呵呵)。此例子在Ubuntu 10.04上测试通过。相关链接《UNIX环境高级编程》(第二版)apue.h的错误 http://www.linuxidc.com/Linux/2011-04/34662.htm Unix环境高级编程 源代码地址 http://www.linuxidc.com...
《APUE》:打印指定的描述符的文件标志

《APUE》:打印指定的描述符的文件标志

《Unix环境高级编程》这本书附带了许多短小精美的小程序,我在阅读此书的时候,将书上的代码按照自己的理解重写了一遍(大部分是抄书上的),加深一下自己的理解(纯看书太困了,呵呵)。此例子在Ubuntu 10.04上测试通过。相关链接《UNIX环境高级编程》(第二版)apue.h的错误 http://www.linuxidc.com/Linux/2011-04/34662.htm Unix环境高级编程 源代码地址 http://www.linuxidc.com...
OpenSSL与CryptoAPI交互AES加密解密

OpenSSL与CryptoAPI交互AES加密解密

继上次只有CryptoAPI的加密后,这次要实现openssl的了。动机:利用CryptoAPI制作windows的IE,火狐和chrome加密控件后,这次得加上与Android的加密信息交互。先前有说openssl移植到android的过程,这里就不再提android如何调用openssl了,而那一篇第9条提到的openssl与cryptoAPI兼容的两种方式感觉实现都不太好用,这里再次提出一种AES加密的实现方式。写这边文章的最主要的原因,用过Cryp...
VC命令行编译参数简介

VC命令行编译参数简介

CL.exe 是控制 Microsoft C 和 C++ 编译器与链接器的 32 位工具。编译器产生通用对象文件格式 (COFF) 对象 (.obj) 文件。链接器产生可执行文件 (.exe) 或动态链接库文件 (DLL)。 注意,所有编译器选项都区分大小写。 若要编译但不链接,请使用 /c。 使用 NMAKE 生成输出文件。 使用 BSCMAKE 支持类浏览。 以下是一个完整的编译器选项分类列表。 优化 选项 作用 /O1 创建小代码 ...
iOS Dev 绘图_在屏幕上画一条线

iOS Dev 绘图_在屏幕上画一条线

前段时间,忽然想学一下关于 在屏幕上绘制图形,我的书上有,但是没怎么看,之后想找一个最简单的例子看一看,发现像这样的文章很多很多,但是我按照他们所说的做了,同样添加了一个Draw2D.h和Draw2D.m文件 并继承自UIView,并且重写了drawRect:方法-(void)drawRect:(CGRect)rect { CGContextRefcontext=UIGraphicsGetCurrentContext(); CGContextSetLine...
Android 高仿【优酷】圆盘旋转菜单 的实现

Android 高仿【优酷】圆盘旋转菜单 的实现

目前,用户对安卓应用程序的UI设计要求越来越高,因此,掌握一些新颖的设计很有必要.比如菜单,传统的菜单已经不能满足用户的需求. 其中优酷中圆盘旋转菜单的实现就比较好.该菜单共分里外三层导航菜单.可以依次从外向里关闭三层菜单,也可以反向打开,并且伴有圆盘旋转的动画效果。首先,看下效果:以下是具体的代码及解释:1. 菜单布局文件:大家看到主要有三个RalativeLayout,就是大家看到的三层,但是关于图片的倾斜 是怎样实现的呢?实际上是个假象,图片是正放的...
<< 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 >>