【发布时间】:2021-03-07 22:06:34
【问题描述】:
我想使用 typeof 运算符来声明一个将保存函数返回值的变量。
int func(void) {
++counter;
}
typeof(func()) val = func(); // side effects for calling func() twice
有没有一种方法可以在函数上使用 typeof 来获取返回类型而不调用函数?
解决方案:我的错。没有副作用。
【问题讨论】:
-
´typeof` 还不是标准运算符。请说明您使用的工具链、您尝试过的方法以及失败的原因。
-
side effects for calling func() twice我不明白那部分。您是否运行了可执行文件?你能显示一个minimal reproducible example,其中func()被调用了两次吗?在 gcc 编译器中 可用 的typeof确实 不 评估参数。我想知道-您使用什么编译器? C 中是否有typeof实现调用该函数?可以展示一下吗? -
我的错。当我尝试它时,我认为有副作用。再试一次好像没有副作用。。一定是我第一次试错了。谢谢