0

我有以下代码:

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没有被访问,怎么算被访问了呢?

4

5 回答 5

2

在这种情况下, number 接收由打印的字节snprintf并且 lint 警告有关未使用的变量,您可以跳过此 lint 警告

number = snprintf(temp, sizeof(char), "%c", 'A'); /* lint -save -e550 */

或正如其他人所说

(void)snprintf(temp, sizeof(char), "%c", 'A');
于 2013-06-18T08:58:08.750 回答
2

函数有返回值被检查,所以使用数字来检查它或者像这样简单地做

char temp[32] = "";


if (snprintf(temp, sizeof(char), "%c", 'A') < 0)
  printf("Error occured");
于 2013-06-18T08:58:25.390 回答
1

尝试这个

(void)snprintf(temp, sizeof(char), "%c", 'A');
于 2013-06-18T08:58:45.437 回答
1

如果您真的想使用数字并想删除警告,那么试试这个..

int number = -1;
char temp[32] = "";


number = snprintf(temp, sizeof(char), "%c", 'A');

if(number <= 0)
{
 /*give some error message */
}
于 2013-06-18T10:00:49.117 回答
0

这是一个警告,您定义了一个未使用的变量。在上面的示例中,您为其分配了一个值,但您不对其进行任何操作。如果变量真的没有被使用,那么你可以从你的代码中删除它,否则编写一些实际使用它的代码,比如一个ifprintf等等。

于 2013-06-18T08:55:55.333 回答