- 博客(10)
- 资源 (2)
- 收藏
- 关注
原创 结构体类型强制转换
#include#include #include typedef struct chann_s{ int num1; int num2;}chann_t;typedef struct mpoaChann_s{ chann_t chan; int num3; int num4;}mpoaChann_t;void main(){ chann_t p; chann_t *p1; mpoaChann_t q; mpoaChann_t *q1; p.num1=1; p.num2=2; q.num3=3; q.num
2011-05-13 21:39:00
1518
转载 互斥锁pthread_mutex_t的使用
<br />1. 互斥锁创建<br /> 有两种方法创建互斥锁,静态方式和动态方式。POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如下: <br /> pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;<br /> 在LinuxThreads实现中,pthread_mutex_t是一个结构,而PTHREAD_MUTEX_INITIALIZER则是一
2011-05-10 19:03:00
850
转载 c语言实现线程池
<br />#ifndef THREADPOOL_H_INCLUDED<br />#define THREADPOOL_H_INCLUDED<br />#include <pthread.h><br /><br />typedef struct threadpool_job<br />{<br /> void (*routine)(void*);<br /> void *arg;<br /> struct threadpool_job *next;<br />}threadpool_job
2011-05-02 20:31:00
595
转载 双向链表C语言实现
<br />#ifndef __STDLIST_H__ <br />#define __STDLIST_H__ <br />typedef struct tagSTDNODE STDNODE, *LPSTDNODE; <br />typedef struct tagSTDLIST STDLIST, *LPSTDLIST; <br />// 链表数据结构 <br />struct tagSTDNODE { <br /> LPSTDNODE lpPrev; <b
2011-05-01 16:00:00
516
转载 extern用法
1 基本解释 extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。 另外,extern也可用来进行链接指定。2 问题:extern 变量 在一个源文件里定义了一个数组:char a[6]; 在另外一个文件里用下列语句进行了声明:extern char *a; 请问,这样可以吗? 答案与分析: 1)、不可以,程序运行时会告诉你非法访问。原因在于,指向类型T的指针并不等价于类型T的数组。
2011-04-07 16:29:00
379
原创 register_chrdev()与register_chrdev_region()
分配设备编号,注册设备与注销设备的函数均在fs.h中声明,如下:extern int register_chrdev_region(dev_t,unsigned int,const char*);表示静态的申请和注册设备号extern int alloc_chrdev_region(dev_t,unsigned int,const char*);表示动态的申请和注册设备号extern int register_chrdev(unsigned int,const char*,struct file_opera
2011-04-04 13:39:00
5068
1
原创 makefile的编写
一、 关于程序的编译和链接 一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。 编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只
2011-03-28 22:41:00
531
原创 指向函数的指针
在C语言中,函数本身不是变量,但每个函数也有其入口地址,这个地址是在编译的时就被分配的,这个地址也称为函数的指针。因此,用户可以定义指向函数的指针,这种指针可以被赋值、存放于数组中,传递给函数及作为函数的返回值等。 函数指针的一般形式为: 数据类型(*指针变量名)() 例如: int (*p)(); char(*n)(); 这样就定义指定返回值的函数指针。例如,在“int (*p)();”中定义的是返回值为int的函数指针,同样“cha
2011-03-28 14:57:00
506
转载 memcpy memset strcpy区别
Memset 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;例:char a[100];memset(a, '/0', sizeof(a)); memset可以方便的清空一个结构类型的变量或数组。 如:struct sample_struct{ char csName[16]; int iSeq; int iType;};对于变量struct sample_strcut stTest; 一般情况下,清空stTest的方法:stTest.
2011-03-19 10:45:00
412
转载 LPTSTR、LPCSTR、LPCTSTR、LPSTR的来源及意义
LPTSTR、LPCSTR、LPCTSTR、LPSTR的来源及意义UNICODE:它是用两个字节表示一个字符的方法。比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节。UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义。MBCS,它是多字节字符集,它是不定长表示世界文字的编码。MBCS表示英文字母时就和ASCII一样(这也是我们容易把MBCS和
2011-03-05 15:51:00
284
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人