プロが教えるわが家の防犯対策術!

intで宣言した変数と変数の足し算を行い、intの変数に代入すると、
シンタックスエラーを起こしてしまいます。

例)

int A;
int B;
int C;

C = A + B

C2061: 構文エラー : 識別子 'C' がシンタックスエラーを起こしました。

A 回答 (8件)

C = A + B を C = A + B ;


として再度実行してみてください。
それでもだめなら
int A;
int B;
int C;
A = 1;
B = 1;
C = A + B ;
としてみてください。
それでもまだエラーが出ますか?

この回答への補足

それでもエラーが出ます。

補足日時:2002/03/22 14:16
    • good
    • 0

変数名を変えてみて下さい。


VC++がどうなのかは知りませんが、コンパイラによっては、
例えばCとC++とを区別するためにCという定数が予め定義
されていたりするような場合があります。

この回答への補足

実際には、Cという変数名は使っていません。
もしかしたら、別のところでエラーが出ているのかもしれません。
行番号が出ているのですが、
コメント行は省いて考えるのですか?
もう1度調べて、また補足します。

補足日時:2002/03/22 15:15
    • good
    • 0

この質問では


C=A+B
となっていますがデリミタ-(;)がついていませんよ。
C=A+B;
これはプログラムでは大丈夫ですか?

この回答への補足

ごめんなさい。
書くのを間違えましたが、「;」は入っています。

補足日時:2002/03/22 15:15
    • good
    • 0

1.識別子名に全角文字を使用していませんか?


2.その前の行に;や}が抜けていませんか?

この行を削除してみて、まだ同じエラーが出るようなら2のケースです。
1のケースの場合はエラーが消えるか、「Cが初期化されていません」というエラーが出ます。
    • good
    • 0

#include <stdio.h>



main()
{
int A;
int B;
int C;

A = 1;
B = 1;

C = A + B;
}

同様に上記のようなプログラムを作成しました。
特に問題はなく、2という結果が返ります。

エラーというのはコンパイル時に発生するのでしょうか?

上記のようなシンプルなプログラムでおっしゃるようなエラーを発生させることが
できませんでした。

上記以外の機能があるようでしたら、そのへんもみてみたらいかがでしょうか?
すみません、回答になってなくて・・・
    • good
    • 0

エラー行があるならCのビューにフォーカスを置いて<編集>-<ジャンプ>でそれを入力すると該当行番号にカーソルがいきます。



VCのヘルプ検索では以下のようになっています。

コンパイラ エラー C2061
構文エラー : 識別子 'identifier' が構文エラーを起こしました。

予期しない位置で identifier を見つけました。このエラーは初期化子をかっこで囲んだときに発生します。このエラーをなくすには、宣言子をかっこで囲むか、宣言子を typedef にしてください。
--------------------

本当にそういった単純なプログラムになっているならこういった類のエラーは出ないはずですが。ちょっとどうやったらそうなるのか再現できませんでした。

一度他の部分は全て/* */でコメントアウトして問題だと思われる部分だけでコンパイルしてみては?単純化して問題部分に絞ることで見やすくなるはずです。

この回答への補足

ジャンプでエラー行に移動することができました。
ありがとうございます。

全体的に補足ですが、

C = A + B;

の行でエラーになっているのではありませんでした。
ごめんなさい。
次の行で、

if c > d then;
と書いているのですが、この文でエラーになっています。
dはint型です。

補足日時:2002/03/22 16:14
    • good
    • 0

> if c > d then;


VB等のプログラムをされていた方なのでしょうか?
Cでは、if c>d then ... endifではなく、
if (c > d) {
...
}
と記述します。もちろんスペースの空け方はお好みで。
    • good
    • 0
この回答へのお礼

はい、ずっとVBをやっていました。
thenはないんですね。
お恥ずかしいです。
ようやくできました。
あとは、他で質問した、関数から関数が呼ばればOKです。
ありがとうございました!!

お礼日時:2002/03/22 16:48

いきなりthenというのも問題ですが、



if構文を使うなら条件式をカッコで囲まないとダメです。

if(c>d)
a+b;

という具合に書くか、
あるいはもっと明示的に

if(c>d){
a+b;
}

と書きます。{}はなくても良いですが、条件式は区切らないとシンタックスエラーになります。
    • good
    • 0
この回答へのお礼

きゃー、ありがとうございます!
できました!
感謝感激です。
()をつけないとダメなんですね。
ほんと、初歩的なことですみません。

お礼日時:2002/03/22 16:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!