
C/C++
embeddedman
华东交大研究生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入理解void类型
深入理解void类型 (2011-03-23 11:05:02)转载标签: 空指针 无类型通用指针 通用排序函数 教育 1.空指针 一般来说,程序的起始地址是从“代码区”的0地址开始存放的(注:如果插入一个内存分布图,则更能说明问题,此处省略),但实际上现代转载 2011-11-15 15:17:18 · 687 阅读 · 0 评论 -
volatile用法详解
我在开发中也常常遇到这个问题,发现通常用在两个方面,一方面是对硬件寄存器或固定内存的访问,一般要用到,这就是我们常常在寄存器的头文件常常看到的,另一个就是在多线程,或主程序和中断共享,全局变量常常用到。言归正传,看看老外是怎么说的Introduction to the Volatile Keyword认识关键字Volatile The use of volatile is poor转载 2012-10-05 21:48:56 · 3526 阅读 · 0 评论 -
字符串数组与字符数组的区别
http://forum.eet-cn.com/BLOG_ARTICLE_12773.HTM?click_from=8800095618,9950159368,2012-06-25,EECOL,FORUM_ALERT转载 2012-06-25 12:39:30 · 776 阅读 · 0 评论 -
内存思考
void GetMemory(char *p){p = (char *)malloc(100);}void Test(void) {char *str = NULL;GetMemory(str); strcpy(str, "hello world");printf(str);}请问运行Test函数会有什么样的结果?答:程序崩溃。因为GetMe原创 2012-05-16 10:43:22 · 1554 阅读 · 0 评论 -
提高编程技巧的十大方法
http://bbs.elecfans.com/jishu_206185_1_5.html转载 2012-05-12 21:57:41 · 732 阅读 · 0 评论 -
volatile关键字
关键字volatile有什么含意?并给出三个不同的例子。一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:•; 并行设备的硬件寄存器(如:状态寄存器)&转载 2012-05-08 21:49:05 · 650 阅读 · 0 评论 -
预处理指令define
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:•; #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)•; 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是转载 2012-05-08 21:47:08 · 992 阅读 · 0 评论 -
C语言地址传递与值传递
1、在C语言中,所有非数组形式的数据实参都是以值传递的形式调用,在值传递的过程中,被调用函数的形式参数被视为该函数的局部变量,即在内存的堆栈中开辟空间以存放由主调函数放进来的实参的值,从而成为了实参的一个拷贝。所以被调用函数不能修改作为实参的实际变量的值,而只能修改传递给他的那份备份。 2、而在地址传递过程中,被调函数的形参虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数原创 2012-04-28 20:21:11 · 7065 阅读 · 1 评论 -
指针变量传递给函数
大家都知道,指针变量存储的地址,但是,在进行函数调用的时候,大家有想过能否将指针变量本身传递给一个函数了?这里首先给大家纠正一个错误,其实main函数内部声明的变量也是局部变量,它们也只是在main函数内部有效,只不过是它们的生命周期和全局变量一样长而已。全局变量一定是定义在函数外部的。 好了,现在大家知道了--------无法把指针变量本身传递给一个函数。测试一下:#inclu原创 2012-04-29 10:24:41 · 1974 阅读 · 0 评论 -
Fedora9安装eclipse开发C/C++
大家不要一味的认为eclipse只是开发java的专利,其实eclipse是一个功能庞大的集成开发工具,只要安装相应的插件,他几乎可以开发现在流行的所有的计算机语言,呵呵,强大吧!!!这里如果有个别是网友ubuntu的Linux发行版,eclipse具体配置可以参考 韦东山 先生的文档:Eclipse,OpenOCD,OpenJTAGv3.3嵌入式开发教程版本4.pdf。言原创 2012-04-28 14:55:22 · 4472 阅读 · 0 评论 -
volatile关键字的作用
作者:tigerjb一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优转载 2012-04-08 12:08:39 · 809 阅读 · 0 评论 -
C语言内存对齐
首先由一个程序引入话题: 1 //环境:vc6 + windows sp2 2 //程序1 3 #include iostream> 4 5 using namespace std; 6 7 struct st1 8 { 9 char a ;10 int b ;11 short c ;12 };13 14转载 2012-04-05 20:54:50 · 5688 阅读 · 4 评论 -
u-boot中typedef应用解析___init_fnc_t *init_sequence[]
/*这里定义了一个新的数据类型init_fnc_t, *这个数据类型是参数为空,返回值为int的函数。 */typedef int (init_fnc_t) (void);/*init_sequence是一个指针数组,指向的是init_fnc_t类型的函数*/init_fnc_t *init_sequence[] = { cpu_init, /* basic cp转载 2011-11-16 19:16:45 · 1051 阅读 · 1 评论 -
GNU C 扩展之__attribute__ 机制简介
【转】GNU C 扩展之__attribute__ 机制简介Posted on 2011-08-27 17:59 M-book 阅读(10) 评论(0) 编辑 收藏 摘要: 在学习linux内核代码及一些开源软件的源码(如:DirectFB),经常可以看到有关__attribute__的相关使用。本文结合自己的学习经历,较为详细的介绍了__attribute__相关语转载 2011-11-16 19:27:06 · 394 阅读 · 0 评论 -
深入理解指针函数
深入理解指针函数 (2011-03-22 11:41:48)转载标签: 指针函数 函数指针 教育 1.指针函数的定义 顾名思义,指针函数即返回指针的函数。其一般定义形式如下: 类型名 *函数名(函数参数表列); 其中,后缀运算符括号“()”表示转载 2011-11-15 16:00:28 · 518 阅读 · 0 评论 -
指针参数传递内存
函数的参数是一个指针,不要用该指针去申请动态内存void get_memory(char *p, int num){ p = (char *)malloc(sizeof(char) * num); }void main(void){ char *str = NULL; str = get_memory(str, 20); strcpy(str, "Hello, world原创 2012-10-05 19:46:58 · 877 阅读 · 0 评论