`
兄弟连果果
  • 浏览: 23659 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux中的C语言妙用

阅读更多
Linux中的C语言妙用
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_C_驱动库_增强版_1741353166.zip

    为了适应这一趋势,提供更加稳定与高效的操作环境,一个名为“达妙电机”的团队开发了一套基于Linux平台,使用C语言编写的电机控制驱动库增强版。 这款驱动库增强版主要针对Linux操作系统下的电机控制应用进行了...

    C语言中宏定义的妙用方法

    最近看了intel在linux内核中的驱动,学习到了一个非常有用的小技巧,如下代码: #define IN #define OUT #define UAdress volatile unsigned int * #define Raw_buffer void * void SetHwiPortsDataReg(IN UAdress ...

    openwrt路由器之前文件传输

    在Linux中,C语言通过socket API实现TCP/IP通信。在这个场景中,`tfservers.c`是服务器端的代码,而`tfclient.c`是客户端的代码。 4. **文件传输**:文件传输通常基于TCP协议,因为TCP提供了一种可靠的数据传输方式...

    void 指针的妙用

    在"void 指针的妙用"这个主题中,我们主要探讨的是`void`指针在链表实现中的应用,特别是在阅读操作系统如uC/OS-II的源码时所体现的优势。 链表是一种动态数据结构,它由一系列节点组成,每个节点包含数据和指向下...

    12312312312313123

    作者详细记录了使用Linux命令如top、cat /proc/cpuinfo、lscpu、cat /proc/meminfo、free、df、vmstat、iostat、sudo fdisk -l、du、ifconfig、ping、netstat、nslookup、route、arp -a、mtr等,以获取和查看系统中...

Global site tag (gtag.js) - Google Analytics