2016-09-26 20 views
3

任意の型の変数を宣言して値を代入しようとすると、コンパイラは「未使用の変数エラー」をスローします。以下では、変数型として 'float'を使用し、1.5に割り当てようとします。変数を定義できません

#include <stdio.h> 
#include <cs50.h> 

int main(void) 
{ 
    printf("How long is your shower?\n"); 
    int time = GetInt(); 

    float flow = 1.5; 
} 

コンパイラは、このエラーがスローされます。

~/workspace/pset1/ $ make water 
clang -ggdb3 -O0 -std=c11 -Wall -Werror -Wshadow water.c -lcs50 -lm -o water 
water.c:10:11: error: unused variable 'flow' [-Werror,-Wunused-variable] 
    float flow = 1.5; 
     ^
1 error generated. 
make: *** [water] Error 1 
+0

この問題は既にここで説明されているようです:(http://stackoverflow.com/questions/19750690/wunused-variable-compiler-says-error) –

+0

'の#include [ここにリンクの説明を入力します] 'はCの一部ではなく、表示されず、あなたの問題に関与しません。サンプルコードからそれを削除したいとします。 – alk

答えて

3

それは実際には警告ではなくエラーですが、理由-Werrorフラグのあなたはエラーとしてそれを参照してください。

簡単に言えば、変数を使用するとエラーは返されません。

#include <stdio.h> 
#include <cs50.h> 

int main(void) 

{ 
    printf("How long is your shower?\n"); 
    int time = GetInt(); 

    float flow = 1.5; 
    printf("Flow: %.2f, time: %d", flow, time); 
} 
+0

しかし、今は 'time'変数について警告します:http://ideone.com/Dzkjix – mch

+0

@mch:十分に公正で、私もprintステートメントに追加しました:) – Wolph

6

flowは、あなたのプログラムで使用されていない - それは、任意の副作用に関与していない、あなたはそれに値を代入し、それを捨てます。良いコンパイラは、このような未使用変数に対して警告します。

-Werrorを使用すると、警告がエラーになりました。

1

あなたはどこでも変数を使用していません。それを印刷してみてください。

printf("%.2f", flow); 
関連する問題