在 C++ 中将命令行参数作为函数调用的简单方法
Simple way to call a command-line argument as a function in C++?
C++初学者有什么办法可以实现这样的东西吗?例如:
./timerprogram sortalgorithm.cpp
其中 timerprogram.cpp 在某些时候会执行类似 argv[1]();
的操作来运行名称由命令行参数给出的函数?
假设排序算法.cpp是自包含的,并且已经有一个数组可以排序。我不需要计时部分,只需要如何将命令行参数作为函数调用。C++有什么内置功能可以让我做到这一点吗?
No.答案是否定的。
你看到的大多数关于这个的东西都是内部笑话。
有一些愚蠢的方法可以让它看起来像它的工作,但它们很愚蠢,当然不适合初学者。
函数名称主要由编译器使用,用于编译代码,并找出何时调用函数"位置"的实际位置。链接器也是如此,但这无关紧要。
尽管某些C++实现可能会提供运行时扩展或库,可用于解析给定符号名称的地址,但最简单和最可移植的解决方案是让程序仅具有一个字符串数组、函数名称和指向相应函数的指针。
然后,main() 在数组中搜索请求的函数名称,并通过其函数指针调用它。
如何实施这个简单的解决方案将是你的家庭作业。
相关文章:
- 函数调用中参数的顺序重要吗
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 变量没有改变?通过向量的函数调用
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 我知道函数调用中存在歧义.有没有办法调用foo()函数
- 模板函数调用
- 获取从C++中同一类中的构造函数调用的方法返回的值
- 析构函数调用
- 成员函数调用和C++对象模型
- 使用共享指针的函数调用,其对象应为 const
- C++:编译时检查匹配的函数调用对?
- 函数调用C++中的参数太少
- 来自 DLL 的函数调用 [表观调用的括号前面的表达式必须具有(指向-)函数类型]
- 返回指向对象的指针的函数调用是否为 prvalue?
- 递归可变参数函数调用对简单 if.else 语句的性能
- 如何从C++DLL中的C#简单函数调用
- C++ VS2010编译器不使用"push"进行简单的函数调用
- 在 C++ 中将命令行参数作为函数调用的简单方法
- 类中简单的petsc函数调用