warning: Value stored to ‘x’ is never read
警告:’x’に格納された値が読み出されない
[clang-analyzer-deadcode.DeadStores]
■return x++ の後置演算子がデッドコード
#include <stdio.h>
int increment(int x)
{
return x++; //NG:意味なし++
}
int main(void)
{
printf("%d\n",increment(1234)) ;//1234と表示される
}
自動変数 x を return 時に後置演算で ++ しても、
もはや誰も参照できないので 後置演算++ に意味がありません。
++ した値を return したいのであれば
2行に分けるか、
前置演算子を使いましょう
➡2行に分けた修正例
#include <stdio.h>
int increment(int x)
{
x++;
return x; //2行に分ける
}
int main(void)
{
printf("%d\n",increment(1234)) ;//1235と表示される
}
➡前置演算子を使った修正例
#include <stdio.h>
int increment(int x)
{
return ++x; //前置演算子
}
int main(void)
{
printf("%d\n",increment(1234)) ;//1235と表示される
}