如何在C中访问此变量?

时间:2013-06-18 08:53:17

标签: c lint printf

我有以下代码:

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,如何计算它?

5 个答案:

答案 0 :(得分:2)

在这种情况下,数字接收由snprintf打印的字节,而lint是关于非使用变量的警告,您可以使用

跳过此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)

这是一个警告,您定义了一个未使用的变量。在上面的示例中,您为其指定了一个值,但您没有对其执行任何操作。如果确实没有使用该变量,那么您可以将其从代码中删除,否则请编写一些实际使用它的代码,例如ifprintf无论如何。