関数へのポインタで何かをしたとき、私は何かに気づき、理解できませんでした
これは私がしました:
#include <stdio.h>
int callback(void)
{
return 5;
}
void call(int (*cpmpare)(void))
{
int x;
x = cpmpare();
printf("%d", x);
}
void main()
{
int (*compare)(void);
int *a, b;
b = 5;
a = &b;
compare = callback;
printf("%p\n", &callback);
printf("%p\n", compare);
call(&callback);
}
そして、私はcompare = &callback
代わりcompare = callback
にそれを行い、同じことを行いました。比較は、コールバックと同じアドレスを取得しました。
なぜ両方の方法で機能したのですか?
私が知っていることから、ポインターと通常の変数を比較するのは間違っているでしょう。