関数へのポインタで何かをしたとき、私は何かに気づき、理解できませんでした
これは私がしました:
#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にそれを行い、同じことを行いました。比較は、コールバックと同じアドレスを取得しました。
なぜ両方の方法で機能したのですか?
私が知っていることから、ポインターと通常の変数を比較するのは間違っているでしょう。