![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 79
ml_liumangtu
专注于基于 arm 的 linux内核研究与驱动开发,正在学习流媒体和算法!
展开
-
防止缓冲区溢出
<br />【注:】本文为转帖,原帖地址为:http://blog.csdn.net/blpluto/archive/2010/09/03/5861791.aspx<br /><br /><br /> 本文讨论 Linux/UNIX 系统中最常见的缺陷:缓冲区溢出。本文首先解释什么是缓冲区溢出,以及它们为何如此常见和如此危险。然后讨论广泛用于解决缓冲区溢出的新 Linux 和 UNIX 方法 ―― 以及为什么这些方法还不足够。随后将展示 C/C++ 程序中防止缓冲区溢出的各种方法,同时转载 2010-12-16 10:18:00 · 4806 阅读 · 0 评论 -
大、小端模式
一、大、小端模式的定义 在计算机系统中,我们是以字节为单位进行读、写的,每个地址单元都对应着一个字节,一个字节为 8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的int/long型(要看具体的编译器)。另外,对于位数大于 8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个数据分布于多个字节德问题。因此就导致了大端存储模式和小 端存储模式。很多的ARM,DSP都为小端模式。有些ARM处理器还可原创 2010-12-14 20:46:00 · 1011 阅读 · 0 评论 -
内存的堆分配和栈分配 & 字符数组,字符指针
<br />堆和栈的区别<br /><br />一个由C/C++ 编译的程序占用的内存 分为以下几个部分<br />1、栈区(stack)— 由编译器自动分配 释放 ,存放函数的参数值,局部变量的值等。其<br />操作方式类似于数据结构中的栈。<br />2、堆区(heap) — 一般由程序员分配 释放, 若程序员不释放,程序结束时可能由OS回<br />收 。注意它与数据结构中的堆是两回事,分配 方式倒是类似于链表,呵呵。<br />3、全局区(静态区)(static)—,全局变量和静态变量的原创 2010-12-16 19:26:00 · 673 阅读 · 0 评论 -
arm-linux-gcc arm-elf-gcc 区别
<br /> 在基于ARM的嵌入式系统开发中,常常用到交叉编译的GCC工具链有两种:arm-linux-*和 arm-elf-*,两者区别主要在于使用不同的C库文件。arm-linux-*使用GNU的Glibc,而arm-elf-*一般使用 uClibc/uC-libc或者使用REDHAT专门为嵌入式系统的开发的C库newlib.Glibc、uClibc/uC-libc以及 newlib都是C语言库文件,只是所应用的领域不同而已,Glibc是针对PC开发的,uClibc/uC-libc是与Glib转载 2010-12-23 13:20:00 · 368 阅读 · 0 评论 -
[转]ARM程序设计优化策略与技术
<br /> <br /> [原文地址]: http://ikongzi.edu.sina.com/News/2009-5-26/22693.shtml<br /> 程序优化是指软件编程结束后,利用软件开发工具对程序进行调整和改进,让程序充分利用资源, 提高运行效率, 缩减代码尺寸的过程。按照优化的侧重点不同, 程序优化可分为运行速度优化和代码尺寸优化。运行速度优化是指在充分掌握软硬件特性的基础上, 通过应用程序结构调整等手段来降低完成指定任务所需执行的指令数。在同一个处理转载 2011-02-22 16:15:00 · 327 阅读 · 0 评论