标题:函数 setvbuf()第二个参数类型为什么是char * 而不是 void *?
只看楼主
东阁
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-2-27
结帖率:100%
已结贴  问题点数:20 回复次数:7 
函数 setvbuf()第二个参数类型为什么是char * 而不是 void *?

 int setvbuf(FILE *stream,char *buf,int type,unsigned size)

第二个参数类型为什么是char * 而不是 void * ?

----------------------------------------------------------

[此贴子已经被作者于2017-3-2 08:30编辑过]

2017-03-01 17:26
东阁
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-2-27
得分:0 
char * 是指在这个缓冲区内都是char类型数据吗
2017-03-01 17:27
qdcs
Rank: 6Rank: 6
等 级:侠之大者
威 望:5
帖 子:171
专家分:458
注 册:2016-12-22
得分:5 
int setvbuf(FILE *fp, char *buf, int type, size_t size)



fp 文件指针,buf 缓冲区指针,size 缓冲区大小  type 模式,其取值和含义如下: _IOFBF  0   满缓冲区后刷新缓冲区 _IOLBF  1
在缓冲区写入或读出一行字符后刷新缓冲区     _IONBF  2   满不缓冲

我是硬件工程师
2017-03-01 17:57
三多兄
Rank: 2
等 级:论坛游民
帖 子:6
专家分:25
注 册:2016-10-23
得分:5 
char *  和 void *是两种不同的类型,一个是字符型指针,一个是空类型指针,char* 表示buf这个指针指向的是一个字符型变量,void*表示buf指针指向的是一个空类型的变量
2017-03-01 19:55
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:5 
要是void* 你不得哭啊  

DO IT YOURSELF !
2017-03-01 21:21
东阁
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-2-27
得分:0 
回复 5楼 wp231957
char * ,是不是指缓冲区内只能是char数据? void * 不是说也可以接受其他类型的指针吗
2017-03-02 08:23
东阁
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-2-27
得分:0 
回复 3楼 qdcs
我问的是,为什么第二个参数缓冲区指针式char *,而不是void *,因为缓冲区如果要保存其他类型啊,比如 double *,float *,那还能用char *?
2017-03-02 08:26
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
话说这个函数没啥大用啊  (一般情况下)

DO IT YOURSELF !
2017-03-02 08:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-474665-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019254 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved