gpt4 book ai didi

function - 为什么 'fputc'使用INT代替CHAR作为其参数?

转载 作者:行者123 更新时间:2023-12-04 10:21:57 73 4
gpt4 key购买 nike

标准C库:

int fputc(int c , FILE *stream);

此类行为发生了很多次,例如:
    int putc(int c, FILE *stream);
int putchar(int c);

为什么不使用CHAR呢?
如果需要使用INT,我什么时候应该使用INT而不是CHAR?

最佳答案

最有可能的是(我认为,由于早期C背后的许多基本原理在时间上已经消失了),它只是镜像fgetc类型函数中使用的类型,该函数必须能够返回任何实字符以及EOF特殊字符。 fgetc函数获取下一个转换为int的字符,并使用特殊的标记值EOF指示流的结束。

为此,他们需要更宽的int类型,因为char不够大,无法容纳所有可能的字符以及其他内容。

并且,由于C的开发人员似乎更喜欢采用极简主义的方法来编写代码,因此,他们将使用相同的类型来允许诸如以下代码是有意义的:

filecopy(ifp, ofp)
FILE *ifp;
FILE *ofp;
{
int c;
while ((c = fgetc (ifp)) != EOF)
fputc (c, ofp);
}

关于function - 为什么 'fputc'使用INT代替CHAR作为其参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2943736/

73 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com