ホームページ  >  記事  >  バックエンド開発  >  C++ 構文エラーを解決する方法: 「':' トークンの前に主式が必要です」

C++ 構文エラーを解決する方法: 「':' トークンの前に主式が必要です」

PHPz
PHPzオリジナル
2023-08-26 16:06:226897ブラウズ

如何解决C++语法错误:\'expected primary-expression before \':\' token\'?

C 構文エラー:「':' トークンの前に主式が必要です」を解決するにはどうすればよいですか?

C プログラミングでは、構文エラーがよくある問題です。よくあるエラーの 1 つは、「':' トークンの前に主式が必要です」というエラー メッセージです。このエラーは通常、条件式と三項演算子を使用したときに発生します。この記事では、このエラーの原因と対応する解決策を紹介します。

まず、簡単なコード例を見てみましょう:

int main() {
    int x = 5;
    int y = 10;
    int max = (x > y) ? x : y;
    return 0;
}

上記のコードでは、条件式と三項演算子を使用して x と y のサイズを比較し、より大きな値が変数 max に代入されます。ただし、コンパイラは「':' トークンの前に主式が必要です」というエラーを報告しました。これは、C 構文では、三項演算子の「?」と「:」を式に置き換える必要があるためです。疑問符の後の式が true の場合はコロンの後の式が実行され、それ以外の場合はコロンの前の式が実行されます。

このエラーを解決するには、三項演算子で使用される条件式が正当な式であることを確認する必要があります。このエラーの一般的な理由は次のとおりです。

  1. 式が欠落しているか正しくありません: 三項演算子を使用する場合は、条件部分の式が正しい式であることを確認する必要があります。条件式が欠落しているか間違っている場合、コンパイラーはそれを認識できず、「':' トークンの前に主式が必要です」エラーが発生します。たとえば、次のコードでは条件式が欠落しているため、次のエラーが発生します:
int main() {
    int x = 5;
    int y = 10;
    int max = (x >) ? x : y; // 错误:条件表达式缺失
    return 0;
}
  1. かっこがありません: 三項演算子の条件式のかっこが無視される場合があります。 , これでも同じエラーが発生します。三項演算子を使用する場合は、構文エラーを避けるために条件式で必ずかっこを使用してください。以下は括弧が欠落している例です:
int main() {
    int x = 5;
    int y = 10;
    int max = x > y ? x : y; // 错误:缺少条件表达式的括号
    return 0;
}

上記 2 つのケースのエラーを解決するには、条件式の位置で正当な式を使用し、次のことを確認するだけで済みます。正しい文法を使用してください。

また、三項演算子を使用する場合は、その構文コンテキストで正しい構文が使用されていることを確認する必要もあります。たとえば、次のコードでは、三項演算子の結果を不正な式に代入しようとしているため、エラーが発生します。

int main() {
    int x = 5;
    int y = 10;
    (x > y) ? x : y = max; // 错误:赋值给非法的表达式
    return 0;
}

このエラーを解決するには、三項演算子 、結果を変数などの正当な式に代入します。

要約すると、C 構文エラー「':' トークンの前に主式が必要です」が発生した場合は、次の点を確認する必要があります。

  1. 必ず三項を使用してください。演算子 の条件式は正当な式であり、その構文コンテキストで正しい構文が使用されています。
  2. 条件式を区切るために正しい括弧を使用していることを確認してください。
  3. 三項演算子の結果が正当な式に割り当てられていることを確認してください。

これらの詳細に注意を払うことで、この一般的な C 構文エラーを回避し、コードの安定性と信頼性を高めることができます。

以上がC++ 構文エラーを解決する方法: 「':' トークンの前に主式が必要です」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。