为什么它打印 g 两次?

Rup*_*ngh 2 c

有人可以向我解释一下这个程序吗

#include <stdio.h>

void print(void)
{
   printf("g");
}

int main()
{
    void(*message)(void);

    print();    // i have doubt here it g

    message = print; // now here why it is printin g again

    (*message)();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这个程序void首先带来了一个函数,现在printf当我们进入main函数时,第一行指示指针消息,该消息为空,之后没有得到原因

dbu*_*ush 8

您拨打了print两次:直接拨打一次:

print(); 
Run Code Online (Sandbox Code Playgroud)

一旦通过函数指针:

message = print; 
(*message)();
Run Code Online (Sandbox Code Playgroud)