C中的typeof真的是运算符吗

typeof是否使用任何(处理器)运行时(在GCC中)?

推荐答案

由于typeof是一个编译器扩展,所以它实际上没有定义,但在传统的C语言中,它是一个运算符,例如sizeof_Alignof也被视为一个运算符.

你错了,C有只在运行时确定的动态类型:变量修改(VM)类型.

size_t n = strtoull(argv[1], 0, 0);
double A[n][n];
typeof(A) B;

只能在运行时确定.

2021年补充:与sizeof规则类似的typeof很有可能进入C23.

C++相关问答推荐

当办公室阻止Visual Studio时编码和编译C

为什么下面的C代码会进入无限循环?

Malloc(sizeof(char[Length]))是否不正确?

当我运行/调试C程序时,Malloc()似乎正在将&q;r\r...&q;赋值给一个指针,我不确定为什么?

我无法让LLDB正确运行我的可执行文件

我可以在C中声明不同长度数组的数组而不带变量名吗?

如何在c++中包装返回空*的函数

如何在POSIX-UEFI中获得输入?

从C文件中删除注释

C将数组传递给函数以修改数组

S,在 struct 中创建匿名静态缓冲区的最佳方式是什么?

我不知道为什么它不能正常工作,我用了get()和fget(),结果是一样的

如何修复我的qsort()算法?它每次都给出不同的结果

用于计算位数和的递归C函数

为什么会导致分段故障?(C语言中的一个程序,统计文件中某个单词的出现次数)

赋值两侧的后置增量,字符指针

Matlab/Octave对conv2函数使用哪种方法?

未使用sem_open正确初始化信号量

关于不同C编译器中的__attribute__支持

C 中从 Unix 纪元时间转换的损坏