编译器如何优化这 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/