0

次のコードがあります。

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


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

戻り値があるnumberため、この変数を作成しました。 number は の警告を削除できます。その後、別の lint 警告が表示されます:ですが、変数 を使用する必要はありません。snprintf"ignore of return value of snprintf"Warning 550: Symbol 'number' not accessednumber

また、snprintf の戻り値によって が割り当てられている場合、アクセスされていないとnumberどのように文句を言うのでしょうか。number

4

5 に答える 5

2

この場合、 number はによって出力されたバイトを受け取り、snprintflint は使用されていない変数について警告しています。この 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

あなたが本当に数字を使いたいと思っていて、警告を取り除きたいのなら、これを試してください..

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 に答える
1

これを試して

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

これは、使用されていない変数を定義したという警告です。上記のサンプルでは値を割り当てていますが、何もしていません。if変数が実際に使用されていない場合は、コードから削除できます。それ以外の場合は、 など、実際に変数を使用するコードを記述しますprintf

于 2013-06-18T08:55:55.333 に答える