首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >EOF值对于不同的说明符的不同?

EOF值对于不同的说明符的不同?
EN

Stack Overflow用户
提问于 2013-08-12 18:02:02
回答 1查看 103关注 0票数 1

我在用代码锁。

下面是C语言中的程序:

代码语言:javascript
运行
复制
/*to find the value of EOF ( End Of the File ) Number */

#include<stdio.h>
int main()
{

    printf("The EOF value is: %d %5ld",EOF, EOF);
    /*when EOF specified in %d specifier it is giving the value as -1, but if its 
         given %ld then a number  4294967295 is printed on the console?*/
    return 0;
}

正如我在节目的评论中所说:

  • 当在%d说明符中指定EOF时,它给出的值为-1,但是如果它给定的%ld,那么控制台上会打印数字4294967295吗?

我在惠普上使用64位Linux操作系统。如果编译器需要分配ints、floats和longs的内存的话

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-12 18:08:34

它可能被定义为(-1),因此它是一个隐式的int。因此,当使用%d打印时,它正确地显示为-1。但是,当期望一个int调用未定义的行为时,将long传递给long

可能发生的情况是,您的系统使用了2的补码,32位int和64位long(int)-1的位模式与(long)4294967295相同。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18193626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档