c - 是否可以在 C 中找到变量的数据类型?
问题描述
我知道在输入操作过程中非常清楚地提到了但想知道。就像在 Python3.6 中一样,我们有“type()”函数。只是好奇而已。
解决方案
只要您提前知道您关心的类型,您就可以使用 C11 中的_Generic()做一些事情:
#include <stdio.h>
#define Type(x) _Generic((x), \
int: "int", \
short: "short", \
long: "long", \
char: "char", \
float: "float", \
double: "double", \
default: "unknown" \
)
int main(void) {
int i;
short s;
long lng;
long long llng;
char c;
float f;
double d;
printf("%s\n", Type(i));
printf("%s\n", Type(s));
printf("%s\n", Type(lng));
printf("%s\n", Type(llng));
printf("%s\n", Type(c));
printf("%s\n", Type(f));
printf("%s\n", Type(d));
}
编译和运行时产生:
int
short
long
unknown
char
float
double
推荐阅读
- python - CVXPY 中的分段线性函数
- file - 如何在运行 rust 二进制文件之间将文件保存在内存中?
- firebase - 在 Flutter 列表视图中删除 Firestore 数据
- java - 尝试在后台线程上使用 Toast.hide 时出现 IllegalStateException
- python - 有没有办法在 Django 应用程序之外使用反向?
- excel - 为什么没有应用我的 VBE 颜色主题?
- ios - SwiftUI 如何实现 VKPinCodeView
- discord.js - Discord.js 如何添加角色
- python - 如何根据采样率在 Python 中按顺序对数组进行均匀采样?
- google-app-engine - post-install-cmd 在 Google App Engine 柔性环境中不起作用