gpt4 book ai didi

c++ - 为什么 C++ 禁止声明没有类型的参数?

转载 作者:搜寻专家 更新时间:2023-10-31 00:44:19 24 4
gpt4 key购买 nike

我希望将以下方法作为任何数组的通用方法,

int arrayLength(`anyType` array[])
{
return sizeof(array) / sizeof(array[0]);
}

然而,C++ 似乎根本不允许任何类型歧义,

这是为什么,我应该如何解决这个问题?

最佳答案

因为类型必须被压入堆栈然后弹出,并且 sizeof 一种类型不等于 sizeof 另一种类型。

如果在函数之间的堆栈上传递的类型大小不固定或事先不知道,编译器如何编译函数?

这个问题的解决方案——正如其他人所指出的——是模板和宏,它们都动态生成代码——然后依次编译——在编译时,出现在“解决”问题,但实际上只是通过将工作卸载到编译器来避免或分散您的注意力。

关于c++ - 为什么 C++ 禁止声明没有类型的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8978788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com