![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 79
_修_
平凡
展开
-
va_list
1.要在函数中使用参数,首先要包含头文件。这个头文件声明了一个va_list类型,定义了四个宏,用来遍历可变参数列表。void va_start(va_list ap, last);type va_arg(va_list ap, type);void va_end(va_list ap);void va_copy(va_list dest, va_list src);下面详细介转载 2012-06-20 19:41:44 · 6477 阅读 · 0 评论 -
copy_to_user和copy_from_user两个函数的分析
在内核的学习中会遇到很多挺有意思的函数,而且能沿着一个函数扯出来很多个相关的函数。copy_to_user和copy_from_user就是在进行驱动相关程序设计的时候,要经常遇到的两个函数。由于内核空间与用户空间的内存不能直接互访,因此借助函数copy_to_user()完成用户空间到内核空间的复制,函数copy_from_user()完成内核空间到用户空间的复制。下面我们来仔细的理一下这两个函转载 2012-07-10 19:46:39 · 626 阅读 · 0 评论 -
copy_to_user和copy_from_user两个函数的分析
在内核的学习中会遇到很多挺有意思的函数,而且能沿着一个函数扯出来很多个相关的函数。copy_to_user和copy_from_user就是在进行驱动相关程序设计的时候,要经常遇到的两个函数。由于内核空间与用户空间的内存不能直接互访,因此借助函数copy_to_user()完成用户空间到内核空间的复制,函数copy_from_user()完成内核空间到用户空间的复制。下面我们来仔细的理一下这两个函转载 2012-07-10 20:12:43 · 648 阅读 · 0 评论 -
gpio_request()函数
其原型为 int gpio_request(unsigned gpio, const char *label)先说说其参数,gpio则为你要申请的哪一个管脚,label则是为其取一个名字。其具体实现如下:[cpp] view plaincopyprint?int gpio_request(unsigned gpio, const char *label) {转载 2012-07-10 20:09:25 · 6956 阅读 · 0 评论 -
结构体之位域(位段)
看linux内核代码时遇到问题:unsigned int state_initialized : 1;不明白什么意思。找到的答案:有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进转载 2012-08-09 10:22:19 · 704 阅读 · 0 评论 -
volatile 简介
volatile的作用: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值.简单地说就是防止编译器对代码进行优化.比如如下程序: XBYTE[2]=0x55; XBYTE[2]=0x56; XBYTE[2]=0x57; XBYTE[2]=0x58; 如果对外部硬件上述四条语句分别表示不同的操作,会产生四种不同的动作,那么编译器就不能像对待纯粹的转载 2012-09-03 14:54:25 · 707 阅读 · 0 评论 -
#define A (* (volatile unsigned long *) 详解
一.#define A (* (volatile unsigned long *) 0x48 ) // 8位处理#define A (* (volatile unsigned long *) 0x48000000) // 32位处理器对于不同的计算机体系结构,设备可能是端口映射,也可能是内存映射的。如果系统结构支持独立的IO地址空间,并且转载 2012-09-03 19:46:38 · 947 阅读 · 0 评论 -
CONST
const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。另外CONST在其他编程语言中也有出现,如C++、PHP5、C#.net、HC08 C。 C中CONST的使用: 虽然这听起来很简单,但实际上,const的使用也是c语转载 2012-09-10 16:11:49 · 313 阅读 · 0 评论 -
linux c/c++ GDB教程详解
学习使用了GDB一段时间后,发现它真的好强大!好用!GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:转载 2012-09-13 10:48:37 · 844 阅读 · 0 评论