| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1587 人关注过本帖
标题:putw和getw,我不懂啊!!!!!!!!!!
只看楼主 加入收藏
长肉的骷髅
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2010-7-22
结帖率:0
收藏
已结贴  问题点数:10 回复次数:10 
putw和getw,我不懂啊!!!!!!!!!!
书上写的是:
putw(int i,FILE*fp)
{char *s;
s=&i;
putc(s[0],fp);putc(s[1],fp);
return(i);}

getw(FILE *fp)
{char *s;
int i;
s=char*&i;
s[0]=getc(fp);
s[1]=getc(fp);
return(i);}
这里s到底是什么类型的变量啊 书上说是指向字符变量的指针变量,那s[0]和s[1]??
char*&i又是什么意思?s是二级指针??
结尾为何又要return(i)???
我实在不明白,高手教教我啊
搜索更多相关主题的帖子: getw putw 
2010-08-30 14:53
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:2 
回复 楼主 长肉的骷髅
你这是16位环境中的代码吧??

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-08-30 18:33
长肉的骷髅
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2010-7-22
收藏
得分:0 
以下是引用jack10141在2010-8-30 18:33:52的发言:

你这是16位环境中的代码吧??
我用的是VC 是16位吧
2010-08-30 19:46
小旬_C
Rank: 2
等 级:论坛游民
帖 子:72
专家分:33
注 册:2010-7-25
收藏
得分:2 
不太明白,不过也看看

没有失败,只有暂时停止成功
2010-08-30 20:46
TGM316750432
Rank: 2
来 自:河南周口
等 级:论坛游民
帖 子:56
专家分:97
注 册:2010-8-27
收藏
得分:2 
你看的这两个函数应该是写在函数库中的函数定义   如果库函数中没有putw 和getw你就可以这样自己定义   解释:当调用putw时,如果用“putw(10,fp);”语句,形参i得到实参传来的值10,在putw中将i的地址赋予指针变量s,而s是指向字符变量的指针变量,因此s指向i的第一个字节,s+1指向i的第二个字节,整数i是16个字节,而一个字符变量是8个字节
所以才用了s[0],s[1]
2010-08-30 20:52
TGM316750432
Rank: 2
来 自:河南周口
等 级:论坛游民
帖 子:56
专家分:97
注 册:2010-8-27
收藏
得分:0 
s=char *&i是使s指向i的起始地址  return i  是如果调用成功函数就返回i
2010-08-30 20:55
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
以下是引用TGM316750432在2010-8-30 20:52:54的发言:

你看的这两个函数应该是写在函数库中的函数定义   如果库函数中没有putw 和getw你就可以这样自己定义   解释:当调用putw时,如果用“putw(10,fp);”语句,形参i得到实参传来的值10,在putw中将i的地址赋予指针变量s,而s是指向字符变量的指针变量,因此s指向i的第一个字节,s+1指向i的第二个字节,整数i是16个字节,而一个字符变量是8个字节
所以才用了s[0],s[1]
这里好象不是字节吧?我认为应该是bit 位 吧??

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-08-31 00:43
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:2 
putw() // 把一个字写入文件(流)
getw() // 从文件(流)读一个字


—>〉Sun〈<—
2010-08-31 00:59
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
int putw(int i, FILE*fp)
{
    char * s = (char *)&i;
    putc(s[0],fp);
    putc(s[1],fp);
    return i;
}
int getw(FILE *fp)
{
    char s[2];
    s[0]=getc(fp);
    s[1]=getc(fp);
    return *(int*)s;
}


[ 本帖最后由 cosdos 于 2010-8-31 01:12 编辑 ]

—>〉Sun〈<—
2010-08-31 01:06
TGM316750432
Rank: 2
来 自:河南周口
等 级:论坛游民
帖 子:56
专家分:97
注 册:2010-8-27
收藏
得分:0 
回复 7楼 jack10141
咳咳···失误,bit~~~
2010-08-31 01:07
快速回复:putw和getw,我不懂啊!!!!!!!!!!
数据加载中...
 
   



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

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