在 C++ 中将命令行参数作为函数调用的简单方法

Simple way to call a command-line argument as a function in C++?

本文关键字:函数调用 简单 方法 参数 C++ 命令行      更新时间:2023-10-16

C++初学者有什么办法可以实现这样的东西吗?例如:

./timerprogram sortalgorithm.cpp

其中 timerprogram.cpp 在某些时候会执行类似 argv[1](); 的操作来运行名称由命令行参数给出的函数?

假设排序算法.cpp是自包含的,并且已经有一个数组可以排序。我不需要计时部分,只需要如何将命令行参数作为函数调用。C++有什么内置功能可以让我做到这一点吗?

No.答案是否定的。

你看到的大多数关于这个的东西都是内部笑话。

有一些愚蠢的方法可以让它看起来像它的工作,但它们很愚蠢,当然不适合初学者。

函数名称主要由编译器使用,用于编译代码,并找出何时调用函数"位置"的实际位置。链接器也是如此,但这无关紧要。

尽管某些C++实现可能会提供运行时扩展或库,可用于解析给定符号名称的地址,但最简单和最可移植的解决方案是让程序仅具有一个字符串数组、函数名称和指向相应函数的指针。

然后,main() 在数组中搜索请求的函数名称,并通过其函数指针调用它。

如何实施这个简单的解决方案将是你的家庭作业。