格式参数太多[-Wformat-extra-args]

时间:2016-11-05 21:10:02

标签: c

fprintf(fptr2,"\n\n:%s",ctime(&t),"\t ","\t"); 

这行在dev中工作正常但在ubuntu中没有,因为它产生了以下错误

warning: too many arguments for format [-Wformat-extra-args]
 fprintf(fptr2,"\n\n:%s",ctime(&t),"\t ","\t");     
                ^

我该怎么办?

1 个答案:

答案 0 :(得分:0)

fprintf采用可变数量的参数:

  • FILE*输出流
  • 格式字符串
  • 每个%格式的一个额外参数,如果指定为*,则以可选的宽度和/或精度开头。

你应该只有一个额外的参数,一个%s格式的字符串。

额外的参数"\t""\t"被简单地忽略了,但是编译器会给你一个诊断,因为它们的存在可能表示一些编程错误。

这样的警告是一种祝福,因为它们可以防止许多愚蠢的错误,从错别字到争论类型不匹配。您的dev环境配置为保持安静,对您不利。请您修复它:添加编译器选项,例如-Wall -W-Weverything