简单介绍Linux中的C语言妙用

文章作者 100test 发表时间 2007:03:14 16:16:06
来源 100Test.Com百考试题网


1.两个数比较大小

#define min( x,y) ({ \

typeof( x) _x = ( x). \

typeof( y) _y = ( y). \

(void) (&._x == &._y). \ //妙用!作用是检查参数 x 和 y 的类型是否相同

_x < _y ? _x : _y. })

2.链表的使用

这个不多说了,太棒了,可以由一个链表成员获取宿主的指针

3.do{}while(0)的使用

#define func(x) do{....}while(0)

4.结构体中的#define

struct sock {

struct sock_common __sk_common.

#define sk_family __sk_common.skc_family

#define sk_state __sk_common.skc_state

.....

}.

5.使用C写出的面向对象程序,通过给结构体中的成员赋予不同的函数指针而实现不同的功能,取代了大量的case语句

6.通过条件宏定义,同一函数名有不同的实现,方便调用此函数

#ifdef xxx

#define func(x) do{实现;}while(0)

#else

#define func(x) do{}while(0)

7.零长度数组

GNU C 允许使用零长度数组,在定义变长对象的头结构时,这个特性非常有用。例

如:

struct minix_dir_entry {

__u16 inode.

char name[0].

}.

8.可变参数宏

在 GNU C 中,宏可以接受可变数目的参数,就象函数一样,例如:

#define pr_debug(fmt,arg...) \

printk(KERN_DEBUG fmt,##arg)

相关文章


系统管理:谈linux磁盘结构及分区
系统管理:在linux下安装BT服务器
嵌入式开发:手机中Linux操作系统扫盲
Linux操作系统下6个应急处理小常识
简单介绍Linux中的C语言妙用
Linux必须学会的60个命令:文件处理2
网络工程师专业术语大集合之路由器
如何成为合格的LINUX系统管理员
Linux显示FAT分区上的汉字文件名
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛