1. ホーム
  2. c++

ERROE: 代入の左オペランドとして lvalue が必要な場合の #define

2022-01-24 23:40:26
<パス

int LCD_BK = 10 を #define LCD_BK 10 に変更すると、次のようなエラーでコンパイルされます。
ERROE: lvalue は代入の左オペランドとして必要です。

原因
#define は識別子として定数を定義する際に適用され、グローバルに作用する
使用中にLCD_BKが変数の役割に関与していた場合、エラーが報告されます。

#defineはグローバルな設定に最適で、グローバルにユニークです。

.hファイルで変数定義を行うと、複数のc/cppファイルを同時に呼び出したときに、再定義エラーになる問題が発生する可能性があります。そのため、#defineが使用できない場合は、[ variable + extern ]を使用して設定などの要求を実装することができます。