c语言知识点

2019/3/4

typedef void voidp;
等同于typedef void
voidp;
voidp a;
a=NULL;
即定义了一个可以指向任何类型的指针

typedef voidpf (ZALLBACK open_file_func) OF((voidpf opeaque, const char filename, int mode));
以上语句定义了一个函数指针,指向返回值为指针类型,参数分别为指针,字符型和int型的函数

网上的例子:

问:“typedef int (*funcptr)();”是什么意思?

答:它定义了一个类型funcptr,表示指向返回值为int型,参数未指明的函数指针,它可以被用来声明一个或多个函数指针,例如:

        funcptr func1, func2;

这个声明等价于下面写法的函数指针声明

       int (*func1)(), (*func2)();

#define ZOPEN64(filefunc,filename,mode) (call_zopen64((&(filefunc)),(filename),(mode)))
以上语句使用了宏定义

#define ZREAD64(filefunc,filestream,buf,size) ((*((filefunc).zfile_func64.zread_file)) ((filefunc).zfile_func64.opaque,filestream,buf,size))
以上语句用前面的函数替代后面的函数
后面的函数分为两块,前半部分代表函数名,后半部分为函数的参数
*表示找到指针指向的函数

fill_fopen64_filefunc(&us.z_filefunc.zfile_func64)
{
pzlib_filefunc_def->zopen64_file=fopen64_file_func;
.
.
.
}
该函数的参数为指向结构体zlib_filefunc64_def的指针;
函数体中,左侧为一个指向返回值为voidpf类型,参数为(voidpf opaque,const void* filename,int mode)的函数指针
右侧为一个返回值为voidpf类型,参数为(voidpf opaque,const void* filename,int mode)的函数名
所以函数体中内容的作用是:给左边结构体中的指针配置相应的功能

static用来声明函数时,被声明的函数只能在声明他的文件中可见,不能被其它文件所用

const char* mode_fopen=NULL;
声明了指向字符型变量的指针mode_fopen
mode_fopen=“wb”;
赋值后将mode_fopen指向"wb"

strcmp(str[0],str[1])
字符串比较函数,如果 str1小于 str2,返回负数;如果 str1大于 str2,返回正数;二者相等则返回 0。(相等时返回0)

continue和break的区别
break是跳出一个循环或结束一个循环
continue是立即结束本次循环,继续执行下一次循环

while是先判断后执行,do while是先执行后判断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值