- 浏览: 20968 次
- 性别:
- 来自: 北京
最新评论
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)
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无盘工作站架设实例
2016-11-30 14:33 986Linux无盘工作站架设实 ... -
指令大全 - Linux 指令篇:档案目录管理--more
2016-11-30 14:15 598指令大全 - Linux 指令篇:档案目录管理--more 名 ... -
指令大全 - Linux 指令篇:字串处理--tr
2016-11-28 11:35 544指令大全 - Linux 指令篇:字串处理--tr 名称:tr ... -
Linux基础 linux命令:XF86Setup
2016-11-28 11:25 614Linux基础 linux命令:XF86Setup XF86S ... -
Linux基础-linux命令:cmp
2016-11-25 13:43 500Linux基础-linux命令:cmp cmp(compar ... -
Linux基础-linux命令:csplit
2016-11-25 11:49 494Linux基础-linux命令:csplit csplit(c ... -
Linux基础知识 linux命令:dnsconf
2016-11-24 11:45 517Linux基础知识 linux命令:dnsconf dnsc ... -
Linux基础资料 linux命令:efax
2016-11-24 11:41 650Linux基础资料 linux命令 ... -
linux命令:elm
2016-11-23 11:50 545linux命令:elm elm 功能说明:E-mail管理程序 ... -
Linux基础:linux命令archive
2016-11-23 11:32 680Linux基础:linux命令archive archive ... -
优盘linux启动
2016-11-22 12:57 703优盘linux启动 条件: 1.优盘已做成启动盘; 2在硬盘上 ... -
Linux和DOS的FORMAT命令区别
2016-11-21 14:04 687Linux和DOS的FORMAT命令区别 DOS的FORMAT ... -
Linux /proc 目录下文件粗谈
2016-11-21 13:42 536Linux /proc 目录下文件粗谈 /proc目录下文件是 ... -
1、如何做好嵌入式Linux学习前的准备?
2016-11-18 11:25 4211、如何做好嵌入式Lin ... -
忘记Linux密码怎么办
2016-11-17 14:57 478如果忘记了Linux密码, ... -
Linux文件系统被破坏时的处理方法介绍
2016-11-17 14:46 887Linux文件系统被破坏时的处理方法介绍 当文件系统被破坏时, ... -
如何学习linux的建议
2016-11-16 13:53 427如何学习linux的建议 一、从基础开始 常常有些朋友在L ... -
Linux系统配置优化的几个经验
2016-11-16 11:53 432Linux系统配置优化的几个经验 关于硬盘分区 小编的经验是安 ... -
Linux增加:重要的Shell环境配置文件
2016-11-15 13:42 426用户登录Linux系统后,通常接触的第一个软件环境就是bash ... -
linux下使用Win Modem
2016-11-15 11:50 443inux下使用Win Modem 我是一名Linux爱好者, ...
相关推荐
Linux中C语言open函数打开或创建文件详细讲解.pdf
Linux下C语言应用编程》深入浅出地讲解了Linux下C应用程序开发所需的基本工具、知识和技巧,主要包括:开发工具的使用和技巧、文件I/O编程、多进程编程、进程间通信、多线程编程、网络编程等内容。可以让读者轻松、...
linux中c语言实现的ping程序(高清pdf)
linux下c语言编程1-18\Linux下C语言编——计时器.doc
LINUX下C语言实现 两个文件合并成第三个文件
linux下C语言实现https请求源码
linux下C语言编写的摄像头显示视频,可在开发板(arm编译)使用,不过像素差了点,可修改参数来改变画质。
c语言读取文件信息 c语言读取文件信息 LINUX LINUX
linux下C编程一站式学习,GCC中文手册,linux下C语言函数库
很基础的LINUX-C语言学习,linux 操作系统下c 语言编程入门
Linux中C语言open函数打开或创建文件详细讲解[文].pdf
linux-c语言编程.pdf 进阶书籍
Linux下C语言编程入门教程 目录 第一章基础知识 ……………………………………………………………………………4 第二章进程介绍 …………………………………………………………………………10 第三章文件操作 ...
Linux下C语言开发工具
Linux下C语言.rar
C Programming in Linux Linux下C语言 C Programming in Linux Linux下C语言 C Programming in Linux Linux下C语言 C Programming in Linux Linux下C语言
适用于linux环境的C语言程序,获取网卡MAC地址,附详细操作说明,两种方式写成的程序,都能达到所需功能,测试可用。
Linux下C语言开发集锦,汇集经典案例,分享给大家!
基于Linux使用C语言实现的一个串口通讯Demo,实测可用。
Linux下C语言编程 简明教程。。。。。。。