我有以下代码:
int number;
char temp[32] = "";
number = snprintf(temp, sizeof(char), "%c", 'A');
我创建了这个变量number
,因为snprintf
有一个返回值,number可以删除"ignore of return value of snprintf"
的警告,然后它会得到另一个lint警告:Warning 550: Symbol 'number' not accessed
,但是我不需要使用变量number
,然后如何修复它?
如果number
是由snprintf的返回值指定的,那么它怎么会抱怨未访问number
,如何计算它?
答案 0 :(得分:2)
在这种情况下,数字接收由snprintf
打印的字节,而lint是关于非使用变量的警告,您可以使用
number = snprintf(temp, sizeof(char), "%c", 'A'); /* lint -save -e550 */
或正如其他人所说
(void)snprintf(temp, sizeof(char), "%c", 'A');
答案 1 :(得分:2)
函数得到了要检查的返回值,因此使用数字来检查它或者只是像这样
char temp[32] = "";
if (snprintf(temp, sizeof(char), "%c", 'A') < 0)
printf("Error occured");
答案 2 :(得分:1)
试试这个
(void)snprintf(temp, sizeof(char), "%c", 'A');
答案 3 :(得分:1)
如果您真的想使用数字并想要删除警告,请尝试此操作..
int number = -1;
char temp[32] = "";
number = snprintf(temp, sizeof(char), "%c", 'A');
if(number <= 0)
{
/*give some error message */
}
答案 4 :(得分:0)
这是一个警告,您定义了一个未使用的变量。在上面的示例中,您为其指定了一个值,但您没有对其执行任何操作。如果确实没有使用该变量,那么您可以将其从代码中删除,否则请编写一些实际使用它的代码,例如if
,printf
无论如何。