用相同的 long long 函数重载 int 函数有什么意义吗?

Is overloading int function with the same long long function has any point?

这是一个简单的例子:

int function (int n) { 
    //code 
}

long long function (long long n) {
    //absolutely the same code but intended to work with bigger values
}

我正在考虑节省额外的内存(如果你将它与 small 类型的变量一起使用)并使其更通用(如果你将它与 类型的变量一起使用]大种)

我希望你能理解我的想法——如果你把 15 之类的东西放在那里,不要使用 long long,而是对较小的类型(如 int)使用重载。

我想我在这里遗漏了一些东西。我什至应该让这个超载吗?我可以制作 最通用的 最优化的 函数而不为 每个现有的 整数 [=29= 重载它吗] type (short, int, long, long long...)?

如果您正在为相当新的个人计算机或网络服务器编写代码,那么拥有一个单独的 int 版本可能是一个不成熟的优化,因为 大多数这些机器都有 64无论如何都是位处理器,所以使用 64 位 long long 的计算应该很快。

OTOH,如果您正在为 8/16/32 位嵌入式系统编写代码,而在该系统上 64 位运算速度非常慢,那么这可能是一个值得进行的速度优化。

但就内存使用而言,它仍然不太可能有帮助,因为重复实现一个函数会增加编译代码的大小,从而取消为变量使用更少内存的好处。除非该函数采用可能 数百万 个整数而不是一个整数的数组,在这种情况下,数据大小比代码大小更值得关注。

如果您确实坚持为不同的整数大小重载函数,我建议使用 Ranoiaetep 的建议,将其设为 template 函数,以避免源代码中的重复。