c语言
黑鸟与幽灵
这个作者很懒,什么都没留下…
展开
-
关于typedef的用法
一.基本概念剖析 int* (*a[5])(int, char*); //#1 void (*b[10]) (void (*)()); //#2 double(*)() (*pa)[9]; //#3 1.C语言中函数声明和数组声明。函数声明一般是这样:int fun(int, double);对应函数指针(pointer to function)的声明是这样:in转载 2009-08-25 15:53:00 · 392 阅读 · 0 评论 -
socket inet_pton
inet_pton Linux下这2个IP地址转换函数,可以在将IP地址在“点分十进制”和“整数”之间转换 而且,inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。 inet_pton函数原型如下[将“点分十进制” -> “整数”] #include #include #include int inet_pton(int af,转载 2009-12-07 19:11:00 · 2370 阅读 · 0 评论 -
socket inet_pton函数使用方法
inet_pton Linux下这2个IP地址转换函数,可以在将IP地址在“点分十进制”和“整数”之间转换 而且,inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。 inet_pton函数原型如下[将“点分十进制” -> “整数”] #include #include #include int inet_pton(int af,转载 2009-12-07 19:02:00 · 8065 阅读 · 4 评论 -
ioctl函数使用方法介绍
本函数影响由fd参数引用的一个打开的文件。 #include#includeint ioctl( int fd, int request, .../* void *arg */ );返回0:成功 -1:出错 第三个参数总是一个指针,但指针的类型依赖于request参数。我们可以把和网络相关的请求划分为6类:套接口操作文件操作接口操作ARP高速缓转载 2009-12-07 14:29:00 · 2298 阅读 · 0 评论 -
linux PPP拨号上网
浅析基于ppp的linux下脚本拨号上网2009年05月27日 星期三 下午 11:56既然是拨号上网,就不能不提到ppp(point-to-point protocol)协议.ppp协议提供了一种通过串行点对点联接传输数据报的方式.它由三部份组成:一种在串行封装数据报的方式,扩展联接控制协议LCP,和用来建立和配置不同网络层协议的家族网络控制协议NCP.封装方案由内核驱动转载 2009-10-25 11:16:00 · 3564 阅读 · 0 评论 -
typedef定义函数指针
typedef定义函数指针2007-07-25 15:59在typedef的使用中,最麻烦的是指向函数的指针,如果没有下面的函数,你知道下面这个表达式的定义以及如何使用它吗? int (*s_calc_func(char op))(int, int); 如果不知道,请看下面的程序,里面有比较详细的说明 // 定义四个转载 2009-10-19 18:45:00 · 1436 阅读 · 0 评论 -
函数指针应用
我们先来看一下以下的声明: int f(int); int (*pf)(int)=&f;//&操作符可选;因为函数名被使用时总是由编译器把它 //转换为函数指针; int ans; ans=f(25); ans=(*pf)(25); ans=pf(25);//间接访问操作并非必需,因为编译器需要的是一个函数指针;转载 2009-10-19 11:07:00 · 664 阅读 · 0 评论 -
C语言中位移位运算符
位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。 位移位运算符的运算对象、运算规则与结果、结合性如表2-16所示。 移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,还与被移位的数据是否带符号有关转载 2009-10-19 09:17:00 · 25320 阅读 · 5 评论 -
c语言变量的存储类型
c语言变量的存储类型可分为:永久性和临时性两种。永久性变量的关键字是:extern和static两个,临时性的为:auto和register extern:默认情况下全局变量和全局函数的存储类型是extern,能够被定义之后同一个编译单元之内的所有函数调用。如果变量和函数被显式的加上extern声明,则其他编译单元中的函数也可以适用他们。 static:显式声明的sta原创 2009-09-21 22:02:00 · 1403 阅读 · 0 评论 -
c语言常见调用规范
_cdecl: 这是c/c++函数默认的调用规范,参数从友向左依次传递并且压入堆栈,由调用函数负责堆栈的清退,因此这种方式有利于传递个数可变的参数给被调用函数(因为只有被调用数函数才知道被调用函数传递多少个参素及其类型)如printf函数。 _stdcall: 这是win API函数使用的调用规范。参数从右向左依次压入堆栈,又被调用函数负责堆栈的清退。该规范生成的函数代码比_cdecl更小原创 2009-09-21 19:42:00 · 830 阅读 · 0 评论 -
setjmp函数功能简介
setjmp 与刺激的abort()和exit()相比,goto语句看起来是处理异常的更可行方案。不幸的是,goto是本地的:它只能跳到所在函数内部的标号上,而不能将控制权转移到所在程序的任意地点(当然,除非你的所有代码都在main体中)。 为了解决这个限制,C函数库提供了setjmp()和longjmp()函数,它们分别承担非局部标号和goto作用。头文件申明了这些函数及同时所需的jm转载 2009-09-04 13:58:00 · 2236 阅读 · 0 评论 -
二维数组传递给二级指针
二维字符数组与char** 关系 收藏 数组和指针联系很紧密,数组名的含义至少有两种含义: 1. 对应数据中的第一个元素的地址, 2. sizeof为数组大小,而不是指针大小注:《c专家编程》中有详细介绍 指针使用经验总结.pdf 中也有相关内容编程中,需要向某个函数传递一个字符串数组。测试代码如下:view plaincopy to cl原创 2009-12-16 15:50:00 · 4067 阅读 · 0 评论