自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 1467

转载 互斥锁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 790

转载 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 550

转载 双向链表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 469

转载 extern用法

1 基本解释  extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。  另外,extern也可用来进行链接指定。2 问题:extern 变量  在一个源文件里定义了一个数组:char a[6];  在另外一个文件里用下列语句进行了声明:extern char *a;  请问,这样可以吗?   答案与分析:  1)、不可以,程序运行时会告诉你非法访问。原因在于,指向类型T的指针并不等价于类型T的数组。

2011-04-07 16:29:00 346

原创 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 4985 1

原创 makefile的编写

   一、 关于程序的编译和链接       一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。       编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++文件中),只

2011-03-28 22:41:00 487

原创 指向函数的指针

      在C语言中,函数本身不是变量,但每个函数也有其入口地址,这个地址是在编译的时就被分配的,这个地址也称为函数的指针。因此,用户可以定义指向函数的指针,这种指针可以被赋值、存放于数组中,传递给函数及作为函数的返回值等。      函数指针的一般形式为:      数据类型(*指针变量名)()      例如:      int (*p)();      char(*n)();      这样就定义指定返回值的函数指针。例如,在“int (*p)();”中定义的是返回值为int的函数指针,同样“cha

2011-03-28 14:57:00 464

转载 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 375

转载 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 250

基于645协议电能表采集程序的实现

基于集中器与下行通信模块本地接口通信协议645(广东规约)下,采集多种电能表及多种数据的ucos-II c程序的实现

2011-08-07

CSerialPort 串口类的应用

本资源是使用CSerialPort 类完整程序,相当于一个demo。

2011-03-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除