C
文章平均质量分 56
胡同里的民工
瞬息万变下,学会珍惜
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
嵌入式C语言那点事(一)几个重要关键字
一、static 关键字static,修饰变量时: 1、限制该变量的作用域:比如静态全局变量,只能在该模块中使用(本c文件中)。 2、决定该变量的存储位置:修饰为静态的变量,存储在静态数据区(非堆栈内)。(同比,全局变量也都存放在静态数据区中。) 带初值和不带初值的静态变量:(以TI DSP 54XX为例) a.不带初值的静态变量,存储在.bss段中。 b.带初值的静态变量,存储在.b原创 2012-05-02 22:47:00 · 1628 阅读 · 0 评论 -
嵌入式C语言那点事(二)栈与队列的实现
栈与队列的区别: 栈——先入后出,后入先出; 队列——先入先出,后入后出; 应用举例: 栈:函数调用时会将临时数据压栈;函数返回时再弹出来。 队列:一般,系统中的任务和消息经常使用队列。可以按任务或消息到来的先后顺序执行。 代码实现: 背景:使用C语言,在VS2008环境下,按栈与队列的原理,采用最简单易懂的方式,针对正整型(int)元素实现栈与队列。 原理:栈的存原创 2012-05-17 00:46:04 · 2842 阅读 · 0 评论 -
嵌入式C语言那点事(三)Linux中霸道的双向链表源码与应用
C语言作为面向过程的语言,想写出灵活的结构与封装需要很高技巧。 但由于C语言的高效,几乎所有操作系统和面向对象语言的最底层实现都使用了C语言。即,使用C完成面向对象的封装。 这次通过整理与仿写Linux的双向链表让我体会到了一些C语言封装的核心技巧。 这个双向链表的巧妙之处在于1)利用宏将“函数”入参扩展出了“结构类型”; 2)利用纯地址偏移获取结构体指针; 下面是具体实现:链表的实现由于原创 2012-05-19 15:29:40 · 2721 阅读 · 0 评论 -
C语言void指针的运算操作[小知识]
void *p; p++; ... 问:如果p的值为0x7f6c5b30,执行完p++,p的值为多少? 如果是char *p,答案是0x7f6c5b31; 如果是int *p,答案可能是0x7f6c5b32(如16bit DSP),可能是0x7f6c5b34(如32bit winxp),可能是0x7f6c5b38(如64bit Linux SUSE); 如果是void *p呢?原创 2012-11-05 22:23:32 · 9089 阅读 · 0 评论
分享