【发布时间】:2012-02-20 15:55:02
【问题描述】:
我想我可能患上了可怕的“意外程序员”病,至少在 typedef 和函数指针方面是这样。所以我一直在尝试各种涉及这些的组合,以根据我得到的所有输出来分析结果。
但由于我不断尝试不同的组合,而不是分析结果,我现在只是迷失在过程中。
我希望你们能帮我弄清楚这个烂摊子。
第一个代码示例
typedef void (print)(void);
void do_something (void) { printf("Hello World\n"); }
print *pr;
pr = &do_something;
pr(); // Hello World
第二个代码示例
typedef void (print)(void);
void do_something (void) { printf("Hello World\n"); }
print *pr;
pr = do_something;
pr(); // Hello World
上面两个代码示例是如何工作的,好像'&'对函数名没有影响
第三个代码示例
typedef void (print)(void);
void do_something (void) { printf("Hello World\n"); }
print pr;
pr = do_something; // compile error
pr = &do_something; // compile error
pr();
我希望上述任务之一在这里工作,但该死!我真的不明白函数指针(也可能是 typedef)。
【问题讨论】:
-
嗯...我认为您应该让自己成为“专家 C 编程”,它解释了 C 的 var 定义规则。我会尽量在网上帮你找
-
只是google Expert C编程,第一本就是书。搜索“声明是如何形成的”,我想你会得到答案
标签: c++ c syntax function-pointers typedef