ftell函数返回的是字节个数,为什么返回值类型不是char而是long int?

weixin_45906870 2020-05-13 09:43:14
我是初学者,可以的话麻烦大佬说的详细点
...全文
536 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_1457346882 2020-05-14
  • 打赏
  • 举报
回复
。。。。你咋不懂呢。返回的是个数不是字符,你字符咋返回,返回abcd嘛?这个返回的是1234,就相当于让你数数多少个苹果,你返回的结果是多少个而不是其中一个苹果,char还是int字节大小只是他的类型,跟返回的数字没有关系,char可以显示字符型的1难道int就只能从4开始吗?同样的我double float 都是数据类型,我返回多少个,既然是整数那我就用整数类型int保存数据,因为怕超出。用长整型,char是字符型,你返回一个整型数据难道用字符型接收
自信男孩 2020-05-14
  • 打赏
  • 举报
回复
char能够表示多少个字节,一个大文件的大小都会超过char的标识范围。
轻箬笠 2020-05-14
  • 打赏
  • 举报
回复
引用 4 楼 weixin_45906870 的回复:
可是一个longint是4个字节,char是一个字节,如果返回值只有一个字节,那岂不是只有四分之一个longint?那返回值是一还是四分之一呢?
楼主这思维得回到当年的机器码编程的时代了,那个时候每个字节都是珍贵的。现如今这个时代大部分程序员不在乎那点内存。也就是我要保存1,也可能用long long来声明,也就是用8个字节保存一个1。 回到这个问题。ftell的声明是 long ftell(FILE *stream); 也就是不管返回值多少个字节,都用4个字节来保存。至于浪费啥的,上面说了,当今的电脑不在乎这些。
Simple-Soft 2020-05-14
  • 打赏
  • 举报
回复
引用 4 楼 weixin_45906870的回复:
引用 3 楼 Simple-Soft 的回复:
[quote=引用 2 楼 weixin_45906870的回复:][quote=引用 1 楼 Simple-Soft 的回复:]个数,char表示字符,如果用char来表示数字的话,最多只能表示256,long int可以表示64位数字
不懂...
ftell得到文件当前指针位置,比如这个文件有1024字节长,假设文件当前指针在1000的位置,那么ftell返回就是1000,跟char没有什么关系[/quote]可是一个longint是4个字节,char是一个字节,如果返回值只有一个字节,那岂不是只有四分之一个longint?那返回值是一还是四分之一呢?[/quote] 当然是1,long int表示是数据类型,返回是几就是几,这个太基础了,你先学习一下基础知识
weixin_45906870 2020-05-14
  • 打赏
  • 举报
回复
引用 6 楼 轻箬笠 的回复:
[quote=引用 4 楼 weixin_45906870 的回复:] 可是一个longint是4个字节,char是一个字节,如果返回值只有一个字节,那岂不是只有四分之一个longint?那返回值是一还是四分之一呢?
楼主这思维得回到当年的机器码编程的时代了,那个时候每个字节都是珍贵的。现如今这个时代大部分程序员不在乎那点内存。也就是我要保存1,也可能用long long来声明,也就是用8个字节保存一个1。 回到这个问题。ftell的声明是 long ftell(FILE *stream); 也就是不管返回值多少个字节,都用4个字节来保存。至于浪费啥的,上面说了,当今的电脑不在乎这些。[/quote]一言惊醒梦中人!
weixin_45906870 2020-05-13
  • 打赏
  • 举报
回复
引用 3 楼 Simple-Soft 的回复:
引用 2 楼 weixin_45906870的回复:
[quote=引用 1 楼 Simple-Soft 的回复:]个数,char表示字符,如果用char来表示数字的话,最多只能表示256,long int可以表示64位数字
不懂...
ftell得到文件当前指针位置,比如这个文件有1024字节长,假设文件当前指针在1000的位置,那么ftell返回就是1000,跟char没有什么关系[/quote]可是一个longint是4个字节,char是一个字节,如果返回值只有一个字节,那岂不是只有四分之一个longint?那返回值是一还是四分之一呢?
Simple-Soft 2020-05-13
  • 打赏
  • 举报
回复
引用 2 楼 weixin_45906870的回复:
引用 1 楼 Simple-Soft 的回复:
个数,char表示字符,如果用char来表示数字的话,最多只能表示256,long int可以表示64位数字
不懂...
ftell得到文件当前指针位置,比如这个文件有1024字节长,假设文件当前指针在1000的位置,那么ftell返回就是1000,跟char没有什么关系
weixin_45906870 2020-05-13
  • 打赏
  • 举报
回复
引用 1 楼 Simple-Soft 的回复:
个数,char表示字符,如果用char来表示数字的话,最多只能表示256,long int可以表示64位数字
不懂...
Simple-Soft 2020-05-13
  • 打赏
  • 举报
回复
个数,char表示字符,如果用char来表示数字的话,最多只能表示256,long int可以表示64位数字

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧