c与指针
文章平均质量分 78
wanwanmeizi
这个作者很懒,什么都没留下…
展开
-
2、ucos优先级调度以及位运算的一些思考
ucos 的调度算法设计的很巧妙,是一个很经典的位图算法。很简洁。 由OSRdyGrp、 OSRdyTbl[]、OSMapTbl[]、OSUnMapTbl[] 这四个变量组成。都是8位无符号类型的。ucos的设计是支持64个优先级(0– 63 ,0优先级最高)。假设优先级为 prio,运算过程如下:映射: Y =prio >> 3;原创 2012-10-10 16:02:36 · 456 阅读 · 0 评论 -
3、C函数可变参数实现细节的一些思考
c函数可变参数很有意思,它和cpu有关系,所以这些参数都是库提供的。 4个参数吧,va_list、va_start、va_arg、va_end ; 以前只会用,并不知道为什么可以这样。unix和windows系统针对X86平台是这样的: #define _INTSIZEOF(n) ( (sizeof(n) + sizeof(UINTN) - 1) & ~(sizeof(UINTN)原创 2012-10-10 16:04:56 · 952 阅读 · 0 评论 -
5、结构元素偏移及寻址细节的一些思考
c语言的结构比较好玩,哈哈。它的指针偏移特别有意思。下面的宏定义也很奇怪: #define offsetof(type, number) (size_t)&(( (type *)0) -> number)开始我以为这个不会通过编译,因为当时我对(void *)0比较敏感,就是NULL指针咯。不过这个宏定义确实是正确的。它用于计算结构元素的偏移量(字节数)。试试就知道了。str原创 2012-10-10 16:24:47 · 531 阅读 · 0 评论 -
程序员的自我修养—第一章
1、计算机软件系统应用层—application programming interface —》 运行库—system call interface(以软件中断的方式提高)—》操作系统—hardware specification—》硬件2、操作系统有两个功能: 1、提供抽象滴接口;2、管理硬件资源。3、计算机硬件资源主要分为 CPU、存储器(包括内存与磁盘)和io设备。4、原创 2013-05-12 19:49:17 · 614 阅读 · 0 评论 -
一、结构基础-2013-3-30
一、结构1、结构是一个或者多个变量的集合,这些变量可以是不同的类型。某些语言将结构称为“记录” 。2、结构可以拷贝、赋值、取地址、传递给函数, 函数也可以返回结构类型的返回值。3、结构的声明由关键词struct 引入,由包含在花括号内的一系列声明组成; 关键词后面struct后面的名字是可选的, 称为标记。 (如果无结构名,而且也没有typedef声明,是没有意思原创 2013-04-09 23:13:07 · 537 阅读 · 0 评论 -
二、Input and output-2013-4-9
Input and output are not part of the C language itself。 一、Standard Input and Outputa、The symbolic constant EOF is defined in . The value is typically -1, bus tests should be written in terms of原创 2013-04-09 23:24:41 · 491 阅读 · 0 评论 -
C语言中几个常量的区别
有三种 enum 标识名{整型常量} ; #define 宏名字 替代正文 常变量 const 变量 变量名= 值;这三者之间存在区别 #define 宏名字 替代正文 是完全没有约束的正文替代,他的结果不受任何限制,完全不顾程序的语法和语义。尽量少用。 const 变量 变量名= 值; 这个本意是变量,只是在定义的时候进行了初始化,而且不能再重新赋值了。定义位置决定转载 2013-02-24 23:30:18 · 561 阅读 · 0 评论 -
在arm cpu下多字节拷贝的一个实现,4字节对其。比较快。
对于arm系列cpu,int 类型数据的读与写都需要4字节对其,要不然会崩溃滴。。。所以呢,不要把其它类型的数据强制转换成int类型。。 #include#include#includevoid * arm_memcpy(void * dest,const void * src,size_t len){ unsigned long int index = 0;原创 2013-01-30 21:11:16 · 914 阅读 · 0 评论 -
4、利用Rc震荡电路,脉冲计数,测量外部温度 细节的一些思考。
前一段时间,有人问我怎么用单片机的io口加上一些简单的外部电路测量外部温度。我当时是莫名其妙,我承认我从来没有想过这个问题。所以当时我很肯定的回答不可能。(在我的印象中,测温一般用温度传感器,或者热敏电阻之类的。怎么也要用个ad转换器吧。) 在坐公交车回去的路上,我仔细想了这个问题。单片机的io口能直接测到的只有电压,只能分辨高低电平嘛。单片机要想直接测温,只能是测外部脉冲的频率,原创 2012-10-10 16:19:36 · 724 阅读 · 0 评论 -
1、针对arm处理器的寄存器运算的问题。
arm寄存器都是32位无符号整型数据。最常见的运算就是一些特定位的操作咯。老是单个写,头晕。可以写成函数或者宏,比较方便。最好写成宏吧。/**definition for bool type*/typedef enum __bool{ true = 1, false = 0,}bool; /* *return x with the n原创 2012-10-10 15:58:35 · 387 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两转载 2014-02-27 15:53:15 · 515 阅读 · 0 评论