随笔分类 -  c语言

摘要:#ifdef的用法头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的:#ifndef#define............#endif在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:stdio.h#ifndef_STDI 阅读全文
posted @ 2013-10-14 14:16 总是TMD后知后觉 阅读(3746) 评论(0) 推荐(0)
摘要:函数名: signal表头文件#include功 能:设置某一信号的对应动作函数原型:void (*signal(int signum,void(* handler)(int)))(int);或者:typedef void(*sig_t) ( int );sig_t signal(int signum,sig_t handler);参数说明:第一个参数signum指明了所要处理的信号类型,它可以取除了SIGKILL和SIGSTOP外的任何一种信号。第二个参数handler描述了与信号关联的动作,它可以取以下三种值:(1)一个无返回值的函数地址此函数必须在signal()被调用前申明,handl 阅读全文
posted @ 2013-09-25 10:47 总是TMD后知后觉 阅读(1364) 评论(0) 推荐(0)
摘要:一.gettimeofday()函数的使用方法:1.简介:在C语言中可以使用函数gettimeofday()函数来得到时间。它的精度可以达到微妙2.函数原型:#includeintgettimeofday(struct timeval*tv,struct timezone *tz )3.说明:gettimeofday()会把目前的时间用tv 结构体返回,当地时区的信息则放到tz所指的结构中4.结构体:1>timevalstruct timeval{ long tv_sec;/*秒*/ long tv_usec;/*微妙*/};2>timezone 结构定义为:struct time 阅读全文
posted @ 2013-09-13 09:48 总是TMD后知后觉 阅读(454) 评论(0) 推荐(0)
摘要:回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。回调函数使用是必要的,在我们想通过一个统一接口实现不同的内容,这时用回掉函数非常合适。比如,我们为几个不同的设备分别写了不同的显示函数:void TVshow(); void ComputerShow(); void NoteBookShow()...等等。这是我们想用一个统一的显示函数,我们这时就可以用回掉函数了。void show(void (*ptr)()); 使用时根据所传入的参数不同而调用不同的回调函数。不同的编程语言可能有不同的语法,下面举一个c语言中回调函数的例子,其中一个回调函数不带参数,另.. 阅读全文
posted @ 2013-09-12 11:14 总是TMD后知后觉 阅读(296) 评论(0) 推荐(0)
摘要:举个排序的例子#include #include typedef struct person {int age;char name[20];double height;} person;int sortOnAge(person* a, person* b) // 以年龄排序,用于回调{return a->age age;}int sortOnName(person* a, person* b)// 以姓名排序,用于回调{return strcmp(a->name, b->name);}int sortOnHeight(person* a, person* b)// 以身高排序 阅读全文
posted @ 2013-09-12 11:12 总是TMD后知后觉 阅读(490) 评论(0) 推荐(1)
摘要:ftok()#include#include函数原型:key_tftok(constchar*pathname,intproj_id);参数:pathname就时你指定的文件名(该文件必须是存在而且可以访问的),id是子序号,虽 然为int,但是只有8个比特被使用(0-255)。返回值:成功时候返回key_t类型的key值,失败返回-1msgget#include#include#include函数原型:intmsgget(key_tkey,intmsgflg);函数描述:建立消息队列参数:msgget()函数的第一个参数是消息队列对象的关键字(key),函数将它与已有的消息队列对象的... 阅读全文
posted @ 2013-08-19 11:49 总是TMD后知后觉 阅读(2695) 评论(0) 推荐(0)