c - const 指针参数在调用函数时如何优化?

标签 c pointers arguments compiler-optimization

编译器如何优化这 4 种类型的函数定义。在参数传递方面有没有优化?

int check_collision(const SDL_Rect const *A,const SDL_Rect const *B) { ... }

int check_collision(SDL_Rect const *A,SDL_Rect const *B) { ... }

int check_collision(const SDL_Rect *A, SDL_Rect const *B) { ... }

int check_collision(SDL_Rect *A, SDL_Rect *B) { ... }

如果重要的话,在调用函数时复制这些参数可能效率低下的情况下,您认为将只读参数传递给函数的最佳方式是什么?

最佳答案

在任何这些情况下使用 const 来更清楚地指示您的使用目的并编写更具可读性的代码,现代编译器足够高效和智能以应用所需的优化,无论您是否传递函数参数是否为 const

简而言之,在这种情况下使用 const 是为了可读性和防止使用错误,而不是为了编译器优化,
编译器足够聪明,可以解决这个问题。

关于c - const 指针参数在调用函数时如何优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9613137/

相关文章:

c - get_sp() 函数如何工作?

c - mpi 进程在信号 11 时退出

objective-c - 为什么这个对象释放不正常,我应该释放它吗?

function - C++ if 语句似乎忽略了参数

c - 错误 : comparison between signed and unsigned integer expressions

c - 如何打印特定长度的输出?喜欢 %d 总是在行外 50 个空格吗?

objective-c - sender.selected = !sender.isSelected 到底做了什么导致我的按钮切换?

c++ - 新的 auto 关键字指针会自行删除吗?

c - 对于相同的参数,函数的行为不同

java - 可以将任何 java 类型的数组或对象数组传递给方法吗?