2013-06-18 16 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',即'(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 */ 
}