В C структуры часто передаются указателями, чтобы предотвратить копирование данных на много.Есть ли разница в скорости передачи указателя или const struct
Интересно, правда, действительно ли это имеет значение? Не компиляторы предотвращают ненужные копии?
Например, если я отмечаю переменную const, будет ли компилятор оптимизировать копию?
Пример
struct my_t {
int a;
int b[24];
}
int generate_updated_myt(const my_t c) {
// do something with c
return 0;
}
int generate_updated_myt(const my_t * c) {
// do something with *c
return 0;
}
Будет ли, в общем, будет ли разница в скорости между этими двумя?
Почему бы вам не попробовать сами? Сделайте две вещи в пару миллионов раз и измерьте время, которое требуется. –
@Peter Smit - Проверьте следующие ссылки и проверьте, отвечает ли он , ваш вопрос - Ссылка 1 - http://stackoverflow.com/questions/212237/constants-and-compiler-optimization-in-c Ссылка 2 - http://stackoverflow.com/questions/6313730/does-const-correctness-give-the-compiler-more-room-for-optimization –
О, как дополнение к моему предыдущему комментарию, вы должны попробовать его с разными уровнями оптимизации при строительстве. –