• ベストアンサー

なぜ警告表示?

VS2005でコンパイルすると、 変数 \'******\' は割り当てられていますが、その値が使用されていません。 という警告が表示されます。 しかし、その値はあとのコードでも割り当てられてるし、 宣言をコメントアウトしたらもちろんエラーとなります。 なぜ警告が表示されるのでしょうか? 例: int intPlan = 0 ;←警告 if(a == 1) {  intPlan = 1 ; }

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

代入以外の使われ方をしていないのではないですか。 また,代入以外の使われ方をする前に,必ず代入されるようになっていませんか。 上記が両方とも成り立つ場合,そのような警告が出るかもしれません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Borland C++ Compiler 5.5の警告について

    Borland C++ Compiler 5.5を使用してコンパイルしているのですが、 下記のソースをコンパイルするとエラーがでます。 #include <stdio.h> ------test.c------ int main(void) { int a; int b=0; b = a; return 0; } 警告 W8004 error.c 6: 'b' に代入した値は使われていない(関数 main )という警告なのですが、初期化をしている変数すべての警告がでてしまい困っています。 この警告だけを表示させない方法等あるのでしょうか?

  • C言語のポインターに関する警告

    line[100]で 「1」が格納されていたら「a」 「2」が格納されていたら「b」 「3」が格納されていたら「c」 とout[100]に代入する関数を作りたいのですが コンパイルすると関数の部分で warning: assignment makes integer from pointer without a cast という警告がでます。 ポインターは使っていないのですが、ポインターに関する警告が出ているようで困っています。 どこが悪いのかまったくわからなくて作業が完全に止まってしまいました。 解決法をおしえてください。お願いします。 /*宣言*/ int=i; /*main関数内のfor文で使用*/ char line[100], out[100]; void change(int); /*関数*/ void change(int i)   {    if(line[i]=='1'){     out[10]="a\0"    }if(line[i]=='2'){     out[10]="b\0";    }if(line[i]=='3'){     out[10]="c\0" } }

  • MFCで作成したプログラムが起動しない(起動した瞬間に終了してしまう?)

    VC++6.0,MFCのダイアログベースでプログラムを作成しています. コンパイル,ビルドとも特にエラー,警告なく行えるのですが,なぜかプログラムが起動しません. メンバ変数をコメントアウトしたり,グローバルで宣言したりするとうまくいったりします. いったい,このような現象の原因としてどのようなことが考えられるのでしょうか.困っております. よろしくお願いします.

  • 警告 ”値が割り当てられていないローカルな変数~”について

    以下のコード1では、”値が割り当てられていないローカルな変数 'key' に対して参照が行われました。”という警告が出ますが、コード2では出ません。 コード2でも値が割り当てられていないと思うのですが、どうして警告が出ないのでしょうか? お分かりの方、お教えくだい。 あと、かなり省略してしまったので、意味の無いコードになってしまいましたが、この2つのコードでkeyの意味合いはどう違うのでしょうか? よろしくお願いいたします。 <コード1> int in_dt() { int *key; scanf( "%d", key );///ここで警告が出る return 1; } int main( void ) { int code; code = in_dt( ); return 0; } <コード2> int in_dt( int *key) { scanf( "%d", key ); return 1; } int main( void ) { int code,key; code = in_dt( &key); return 0; }

  • ポインタへの値の代入時の警告の原因

    私は現在、事務職をやっており、プログラミングとは全く別の畑に居ます。 真剣に転職を考えておりC言語を独学にて勉強中なのですが、ポインタの勉強中、どうしても理解できない点がありましたので質問いたしました。 ポインタを理解するために下記1~3のような処理をさせました。 1.文字変数s に 'a' を代入 2.ポインタp を宣言し、変数s のアドレスを代入 3.最終的にpの値を確認する。 #include<stdio.h> int main (void) { char  s; char  *p; s = ' a '; p = & s;        //←ここが9行目です printf (" pは %c です\n " , *p); return 0; } すると、 『 pは a です 』 と、期待通りの表示がされました。 次に、9行目を *p = s と書き換えた所、コンパイル時に 『値が割り当てられていないローカルな変数’p’に対して参照が行われました』 と言う警告が表示されました。 実行してみた所、 『pは a です』 と、結果は期待通りのものが表示されたのですが、この警告がなぜ表示されたのかが分かりません。 参考書を読んでも、このような(*p = sのような)書き方は載ってましたし、私自身、『「ポインタ変数pの値*p」に「変数sの値」を代入した。』と認識している為、間違いでは無いと考えております。 この警告がなされた原因について、どなたかご存知でしたら、宜しくお願いいたします。

  • 商、余り

    はじめまして。 以下のプログラムでコンパイルするとエラーがでます。 変数aをintにして%dですれば成功しますが 変数floatではなぜ失敗するのでしょうか?? #include<stdio.h> int main() { float a; a=13; printf("%f",a%2); return(0); } コンパイルすると エラー6: 浮動小数点の不正な使用(関数 main ) 警告 8: 'a' に代入した値は使われていない(関数 main ) とでます。 初歩的な質問ですがよろしくお願いします。

  • 『sun教科書 javaプログラマ』で勉強している者です

    javaの資格を取るべく独学中の者なのですが、回答を読んでも何故そうなるのか理解できない問題に出くわして困っています。ご教授いただければ助かりますm(__)m [問題3-15] 次のコードがあります。 public class CodeWalkTwo { int x = 3; static int y = 2; public static void main(String[] args){ int x = 10; int y = 10; CodeWalkTwo boardWalk = new CodeWalkTwo(); boardWalk.printIt(); boardWalk.printIt(y); } {x = x+1;} static{y += y;} void printIt(){ System.out.print(++x); } void printIt(int y){ System.out.print(" " + ++y); } } 実行結果は次のどれですか。 A. 5 11 B. 11 11 C. 5 5 D. 17行目でコンパイルエラーが発生する E. 5行目と6行目でコンパイルエラーが発生する 正解はA。その理由は2・3行目で宣言されるインスタンス変数およびstatic変数と、5・6行目で宣言されるローカル変数とは異なるスコープだからなのだそうですが、解説が短すぎてよく分かりません>< なぜ、片方はインスタンス変数でもう一方はローカル変数を実行しているのでしょう?

    • ベストアンサー
    • Java
  • VC++、超初心者です。

    intで宣言した変数と変数の足し算を行い、intの変数に代入すると、 シンタックスエラーを起こしてしまいます。 例) int A; int B; int C; C = A + B C2061: 構文エラー : 識別子 'C' がシンタックスエラーを起こしました。

  • switch文について

    独学でjavaの勉強をしているのですが、switch文が本のとおりに入力しても エラーがでて困っています。どこが間違っているのかわかりません。 ちなみにプログラム内容は class bunki2{ public static void main(String args[]){ int a; a=1; switch (a) { case1:System.out.println("変数aの値は1です。"); break; case2:System.out.println("変数aの値は2です。"); break; case3:System.out.println("変数aの値は3です。"); break; } } } です。 これでコンパイルしようとすると’case’、’default’、または’}’がありません。とでます。 なぜできないのか教えてください。

    • ベストアンサー
    • Java
  • java コンパイルエラー (初心者です)

    次のようなソースコードを入力してコンパイルすると、 class, interface, or enum expectedというエラーが出ます。 なぜでしょうか?{}の数はあってると思いますが... dentaku.java class dentaku{ public static void main (String args[]){ //3つの変数「a」と「b」と「c」を宣言 int a =0; int b =1; int c =1; System.out.println("xを10進数,aを2進数の1の位、bを10の位、cを100の位とするとと" + (x=a^2+b^2+c^2) + "です。"); } }

    • ベストアンサー
    • Java