2013-06-18 5 views
0

У меня есть следующий код:как эта переменная не доступна в C?

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


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

Я сделал эту переменную number, потому что snprintf имеет возвращаемое значение, число может удалить предупреждение "ignore of return value of snprintf", то он получает еще одно предупреждение ворса: Warning 550: Symbol 'number' not accessed, но мне не нужно используйте переменную number, то как ее исправить?

И если number присваивается возвращаемым значением snprintf, как он может жаловаться на то, что number не имеет доступа, как считать, что к нему обращаются?

ответ

2

В этом случае числа принимает байты, напечатанные snprintf и пуха предупреждает о, не используемой переменной, вы можете пропустить это предупреждение пуха с

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

или других говорит

(void)snprintf(temp, sizeof(char), "%c", 'A'); 
0

Это предупреждение о том, что вы указали переменную, которая не используется. В приведенном выше примере вы присваиваете ему значение, но вы ничего не делаете с ним. Если переменная действительно не используется, вы можете удалить ее из своего кода, иначе напишите какой-то код, который ее использует, например if, printf.

+0

Я сделал это переменный, поскольку snprintf имеет возвращаемое значение, и переменный номер может удалить предупреждение «игнорировать возвращаемое значение snprintf», но он вводит новое предупреждение, как его исправить? – user2131316

+0

Вы можете наложить snprintf на 'void' i.e.' (void) snprintf (temp, ...) ' – Devolus

2

Функция получила возвращаемое значение для проверки, поэтому используйте номер для проверки или просто так:

char temp[32] = ""; 


if (snprintf(temp, sizeof(char), "%c", 'A') < 0) 
    printf("Error occured"); 
1

попробовать этот

(void)snprintf(temp, sizeof(char), "%c", 'A'); 
1

если вы действительно хотите использовать номер и хотите убрать предупреждение, то попробуйте это ..

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


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

if(number <= 0) 
{ 
/*give some error message */ 
} 
Смежные вопросы