在C函数中使用未使用的参数可以吗?
是的
还是,为什么不让encoder()
取两个FILE*
而不是名称,然后再做(伪代码):
main(argc,argv)
FILE * fp_in,* fp_out
if argc == 2
fp_in = open argv[1],"r"
else
f = stdin
if argc == 3
fp_out = open argv[3],"w"
else
fp_out = stdout
encoder fp_in,fp_out
,
要回答标题中的一般性问题-是的,可以使用所有传递给函数的参数,尽管这样可能会使以后的维护者感到困惑。
对于这种特定情况,建议不要对输入和输出文件使用特殊名称,以表示标准流,而不是传递参数计数。在* nix命令行实用程序中,使用"-"
来指定从标准输入中读取内容是一个常见约定:
xmllint --format some_ugly_wad_of_xml | vi -
上面的命令漂亮地打印了一些XML,然后将漂亮打印的版本传递给vi进行编辑(这是我最近要做的很多事情)。因此,与其传递argc
,不如传递文件名并检查它们以确定执行的操作:
if ( !strcmp( inputFile,"-" ) )
inputStream = stdin;
else
inputStream = fopen( inputFile,"r" );
这样,您就不会留下任何“未使用”的参数。
,
最好打开文件并读取所有内容并获取变量。因此,您可以释放(关闭)文件并跳舞。关闭文件后,随意创建东西。
本文链接:https://www.f2er.com/3166079.html