【发布时间】:2013-07-08 17:10:57
【问题描述】:
假设有人以下列方式分别为每个人创建了单独的函数:
void John_age(void);
void Tom_age(void);
void Kate_age(void);
void Cathy_age(void);
........
确定他们的年龄。
现在我想创建这样一个函数,只使用人名来调用这些函数,例如:
void age(char* NAME){...}
为那个人“NAME”调用特定的函数。
void NAME_age(void);
在 C++ 或 C 中是否有任何简单的方法可以做到这一点?我将衷心感谢您的帮助。谢谢。
我用于微控制器的 IDE 为每个单独的引脚 X 生成格式为 void X_functionName(void); 的可执行函数。所以我一直在寻找一种更通用的方法来使用 void customName(const char* X) 等函数轻松调用它们。
【问题讨论】:
-
名称到年龄而不是函数的映射。当您不修改它时,为什么要采用非常量
char *?这样做真的很痛苦。 -
您可以使用具有字段名称和函数指针的相同结构。从这个question and its answers得到一个想法
-
哪种语言,C 或 C++?根据语言的不同,有不同的可能性。
-
您是否可以将其设为虚函数并使其签名相同,例如
getAge()? -
@chris 感谢您指出这一点。 :) 我还是个初学者,所以确实会发生错误。 :p