博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux中的C语言妙用(转)
阅读量:2451 次
发布时间:2019-05-10

本文共 983 字,大约阅读时间需要 3 分钟。

Linux中的C语言妙用(转)[@more@]

  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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8225414/viewspace-965604/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8225414/viewspace-965604/

你可能感兴趣的文章
photos设置成中文_如何在OS X的Photos中设置和使用扩展程序
查看>>
大剧院自助签证_如果您的项目是《剧院》,请使用演员
查看>>
windows终端终端_Windows终端介绍
查看>>
小额免密_如何在您的应用中进行小额付款
查看>>
用开源代码如何建立网站_建立全球开源法律网络
查看>>
c&c++语言参考手册_C ++值类别快速参考:第2部分
查看>>
javascript优化_优化性能的十大JavaScript技巧
查看>>
传统网络面临问题_我们每天都面临的最流行的计算机问题
查看>>
aws cmake .._如何将Hyperledger Fabric 1.4部署到AWS
查看>>
unity 场景优化_Unity优化:您的场景层次正在抢劫您
查看>>
如何制作电子邮件而不是一团糟:实用技巧
查看>>
理想商城_理想产品经理的52个特征
查看>>
移动应用程序开发_7种用于移动应用程序开发的终极编程语言
查看>>
本地应用程序_应用程式本地化的十大语言
查看>>
sds和c字符串比较_SDS虚拟化架构的简要比较
查看>>
java项目中出现的bug_2019年在Java项目中发现的十大bug
查看>>
app开发和web开发_理解现代Web App开发概念的指南
查看>>
汉语句子的意群和重音_五重音而不是字节-数据存储和检索方法
查看>>
现实增强 工具包 csdn_增强现实:21世纪教育的理想工具
查看>>
tls 1.2加密_椭圆曲线加密在TLS 1.3中的工作方式
查看>>