c - 有没有办法从字符串值获取实际类型?

标签 c java-native-interface

我正在学习 C 编程语言。

有什么好的/合理的方法可以从字符串值获取实际类型吗?

我已经听说 sizeof 运算符几乎是编译时的事情。

假设我们有以下可以在运行时提供的字符串文字。

char *name_of_long_long_int = "long long int";

有什么办法可以实现以下效果吗?

size_t size_of_long_long_int = sizeof(long long int);

最佳答案

不,没有内置函数可以执行此类映射。

但是您可以使用仅限于您的应用程序的 if-else 或 switch 结构自行完成此操作。

有一个名为“typedef.h”的库//它在 C++ 中可用,我不了解 C

它有一些函数,例如 type.id() 可以进行反向映射,也许你可以在该库中找到一种方法。

//仅适用于 C++,不适用于您要求的 C,但您仍然可能会得到一些想法:

您还可以使用 map 通过字典来完成此操作

这是非常有用的链接: Is there a way to instantiate objects from a string holding their class name?

关于c - 有没有办法从字符串值获取实际类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30658638/

相关文章:

c++ - JNI 从 c 调用 java 得到段错误(核心转储)

C - 通过套接字发送修改后的字符串

来自 dll 的 Java 调用函数

java - 在 Java 中使用 C++ ".lib"文件

android - 禁用 JNI C 代码中变量的编译器优化

Java JNI : Creating a Swing Window using JNI from C

c++ - C 到 C++ 转换器

c - 是否可以强制 GCC 输出我给出的精确按位指令,而无需内联汇编?

c - C 中的缓冲区互斥锁和条件变量

c - 为什么下面3个程序的输出是这样的?