gpt4 book ai didi

c - 在 C 中省略参数名称

转载 作者:太空宇宙 更新时间:2023-11-04 00:43:30 26 4
gpt4 key购买 nike

因此,我在 C 中复习了一些用于文件 I/O 的代码,并且对临时 cat 函数的一行感到困惑。

我主要对 main 中的行感到困惑:

void filecopy(FILE *, FILE *);

我们没有指定要为 ifp 和 ofp 传递的文件的名称,所以我不确定这一行在做什么。

/* filecopy: copy file ifp to ofp */
void filecopy(FILE *ifp, FILE *ofp) {

int c;

while((c = getc(ifp)) != EOF){
putc(c, ofp);
}
}


/* cat: concatenate files, version 1*/
int main(int argc, char **argv) {

FILE *fp;
void filecopy(FILE *, FILE *);

if(argc == 1){ /*no args: copy standard input */
filecopy(stdin, stdout);
}else{
while(--argc > 0){
if((fp = fopen(*++argv, "r")) == NULL){
printf("cat: can't open %s\n", *argv);
return 1;
} else{
filecopy(fp, stdout);
fclose(fp);
}
}
}

return 0;
}

最佳答案

这一行:

void filecopy(FILE *, FILE *);

是一个函数声明,用于允许其他代码调用一个函数。它指定存在一个具有给定名称和给定数量的已知类型参数的函数。调用函数不需要这些参数的名称。只有当您定义函数时才需要它们,即当您指定函数的主体时。

请注意,在此示例中不需要声明,因为该函数已在文件的前面完全定义。

关于c - 在 C 中省略参数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55522796/

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