![]() |
sizeof — тип или значение? | ||
Как использовать sizeof? Речь идет о случае, когда вы хотите передать данные какому-то внешнему API. Варианта, собственно, два. Вот первый: |
0 1 2 | math::matrix mat; std::size_t mat_size = sizeof(math::matrix); socket->send(&mat, mat_size); |
А вот второй: |
0 1 2 | math::matrix mat; std::size_t mat_size = sizeof(mat); socket->send(&mat, mat_size); |
Я рекомендую использовать второй вариант. Во-первых, если тип передаваемого объекта изменится, вам не придется менять код. Во-вторых, первый вариант дает пользователю информацию о типе объекта. Эта информация лишняя. Все, что пользователь должен знать об объекте, должно быть видно из имени этого объекта. И в третьих, второй вариант наглядно показывает, для какого объекта будут использованы полученные данные. Это обогащает семантику кода. |
|
Статистика |
|