| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Является ли затратным приведение типов? |
| Автор: manking 16.11.2011, 01:57 |
| например char * массив; функция( (unsigned char *)массив ); 1) Такое приведение предназначено для компилятора или выполняется по ходу выполнения? 2) Функция отработает за такое же время как и без приведения? |
| Автор: volatile 16.11.2011, 02:18 |
| не затратно. ваше приведение а частности, абсолютно не затратно. Оно лишь говорит компилятору как интерпретировать. |
| Автор: manking 16.11.2011, 02:27 | ||
А если из void *? void * указатель; do { ... = *(std::string*)указатель; ... = *(int*)указатель2; } |
| Автор: volatile 16.11.2011, 02:36 |
| manking, не затратно. |
| Автор: manking 16.11.2011, 02:38 | ||
Спасибо. |
| Автор: azesmcar 16.11.2011, 07:24 |
| manking Затратно только динамическое приведение типов, т.е. dynamic_cast. |
| Автор: borisbn 16.11.2011, 08:47 | ||
| manking, такое приведение может быть очень и очень затратным (с точки зрения затрат человеческих, а не ЦП), если допустить логическую ошибку. Например
Такой код скомпилируется без ошибок и дай бог, если вылетит при первом использовании. Короче, в идеале желательно обходиться без такого рода приведений. Максимум static_cast. |
| Автор: mes 16.11.2011, 09:07 |
| borisbn, а тс точно в курсе про С++ ? |
| Автор: borisbn 16.11.2011, 09:12 |
| mes, не знаю, но ружьё, думаю, стОит отобрать сразу |
| Автор: rumit7 16.11.2011, 10:32 | ||
Вот http://www.agner.org/optimize/optimizing_cpp.pdf в пункте 7.11 обсуждается стоимость различных приведений типов. |