【C言語】wrong type argument to unary exclamation mark

“wrong type argument to unary exclamation mark” というエラーメッセージは、プログラミング言語 C で、! (exclamation mark) 演算子が用いられたときに発生します。例えば次のようなコードです。

int a = 10;
int b = !a; // 'a' は int 型の変数であるため、! 演算子は使用できません

このコードでは、aint 型の変数ですが、! (exclamation mark) 演算子は、型 bool の値に対してのみ使用できます。そのため、このようなコードを実行しようとすると、”wrong type argument to unary exclamation mark” というエラーメッセージが表示されます。

この問題を解決するには、! (exclamation mark) 演算子が用いられる前に、a を型 bool の値に変換する必要があります。例えば、次のようなコードです。

int a = 10;
bool b = (bool)a; // 'a' を bool 型の値にキャストする
int c = !b; // ! 演算子は bool 型の値に対して使用できる

このように、a を型 bool の値に変換することで、! (exclamation mark) 演算子が使用できるようになります。こうすることで、”wrong type argument to unary exclamation mark” というエラーメッセージが発生しないようになります。

コメント

タイトルとURLをコピーしました