我想知道在调用类似的函数时对用户是否有任何好处
A) 无效函数(int i);
或类似的功能
B) 无效函数(const int i);
在 func 内部,参数 i 无论如何都会被复制到堆栈(或编译器在其优化中选择的任何位置),对于调用此函数的用户来说,A 和 B 之间没有区别。
因此,如果实现类似:
A)
void func(int i)
{
i = another_func(i);
printf("%d", i);
}
或使用 const
B)
void func(const int i)
{
int j = another_func(i);
printf("%d", j);
}
我的问题 :
实施 B 有什么好处吗?编译器可以执行任何类型的优化?A和B只是一个简单的例子,这些问题对其他情况也有效。
我理解在指针中使用 const 的好处(例如 const void *data),因为我们告诉用户我们不会修改它的内容,但我不明白 const 的用法除了警告程序员该函数他不应该修改它,但在我看来,在 API 头文件中使用 const 是没用的。
谢谢你的帮助。