查找通过命令行参数传递的类型的大小

时间:2018-01-01 17:02:50

标签: c

我正在尝试编写一个程序,类似int char这样的类型通过命令行参数传递,然后androidTestUtil 'com.android.support.test:orchestrator:1.0.1' 用于打印字节

我编写了部分代码,如果有人可以在sizeof

中完成编写方式和内容

如果我写sizeof这是一个问题,因为它是一个字符串而不是一个类型

argv[loop]

1 个答案:

答案 0 :(得分:7)

sizeof无法帮助您。因为你只会得到sizeof(char*)而不是别的。

好吧,所有人都得到char*数组,所以每个人都会char*,唉,你无法知道它是int还是float直接{1}}因为你得到的只是每个参数的空终止char数组。

如果您想知道每个参数字符串的长度,请使用strlen()

嘿,如果您需要存储获取该信息,我可以告诉您一个方案

./a.out -f 1.32 -i 123 -s "ok"

现在你知道-f意味着你会期待float。相应地解析它并且开心。你必须设计这样的程序。

如果你的意图是

./a.out int char

然后你会打印sizeof intchar,然后就没办法了。

  

sizeof运算符产生其操作数的大小(以字节为单位),   可以是表达式或类型的括号名称。大小是   根据操作数的类型确定。结果是整数。如果   操作数的类型是可变长度数组类型,操作数   被评估;否则,不评估操作数和结果   是一个整数常量。

在这里,如果我们传递空终止字符串(" int"," float"到sizeof),那么它们都不是。所以这不会起作用。