【问题标题】:Use data type according to command line argument in C根据 C 中的命令行参数使用数据类型
【发布时间】:2014-01-16 18:59:08
【问题描述】:

我试图将作为命令行参数给出的数据类型保存在我的 C 程序中,并在整个程序中使用该类型而不检查它。例如,我可以运行程序“./name -d int”或“./name -d float”,我希望保存数据类型以供进一步使用并在整个程序中看到,而不仅仅是在主功能。一个简短的例子:

int main() {
  /* read command line argument */
  /* I would like to be able to save the type in T to use like this */
  T a[20]; 
  /* rest of the program */
}

我可以这样做吗?

谢谢。

【问题讨论】:

  • 不,你不能。在编译时检查类型。你不能在运行时声明它们。

标签: c command-line-arguments


【解决方案1】:

正如前面的回答所指出的,除非您的代码中有类似 switch 语句来处理不同的情况,否则您不能在 c 中执行此操作,因为数据类型是在编译时确定的。如果您愿意满足小于 64 位精度的整数并且您有 64 位双精度数,则可以对所有数字使用双精度数,然后只需使用 switch 语句,例如输出时,根据需要将双精度数转换为整数或字符等,然后以所需格式输出。

【讨论】:

    【解决方案2】:

    不,你不能在 C 中做到这一点。 类型必须在编译时确定,不能在运行时选择类型。

    更多动态语言(例如 Objective-C)将允许您执行此类操作。

    你为什么首先尝试这样做?也许我们可以提供更多指导。

    【讨论】:

    • 我想实现一个程序,它可以处理不同类型的数组,并且类型作为命令行参数给出,如我的示例所示。
    猜你喜欢
    • 1970-01-01
    • 2013-09-28
    • 2021-08-14
    • 2011-07-12
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    相关资源
    最近更新 更多