“called object ‘xxx’ is not a function” というエラーメッセージは、プログラムが関数として呼び出しているものが実際には関数ではない場合に発生するものです。C 言語では、関数を呼び出すには、関数名の後ろに括弧を付ける必要があります。
例えば、以下のようなプログラムでこのエラーが発生する可能性があります。
#include <stdio.h> void print_hello() { printf("Hello, world!\n"); } int main() { print_hello; // エラー: called object 'print_hello' is not a function return 0; }
上記のプログラムでは、print_hello
という関数を定義しています。この関数は、文字列 “Hello, world!” を出力するだけの単純なものです。
そして、main
関数内では print_hello
という名前の関数を呼び出しています。しかし、この行では、print_hello
の後ろに括弧が付いていないため、print_hello
を関数として呼び出すことができません。そのため、プログラムが実行されると、エラーが発生します。
このような場合、print_hello
を関数として呼び出すには、括弧を付けて呼び出す必要があります。例えば、以下のように修正することができます。
#include <stdio.h> void print_hello() { printf("Hello, world!\n"); } int main() { print_hello(); // 正しく動作する return 0; }
上記のように、print_hello
の後ろに括弧を付けて呼び出すことで、プログラムが正しく動作するようになります。
コメント