Re[8]: Основные минусы плюсов...
От: so5team https://stiffstream.com
Дата: 26.07.23 04:20
Оценка:
Здравствуйте, CRT, Вы писали:

S>>Расскажите эту байку кому-нибудь помоложе.

CRT>Конечно, ведь
CRT>std::cout << "0x" << std::hex << std::setfill('0') << std::setw(4) << 0x424 << std::endl;

Это, вообще-то говоря, необязательно. И запросто может быть преобразовано к чему-то вроде:
std::cout << format("0x04{}", 0x424) << std::endl;


CRT>гораздо удобней чем
CRT>printf("0x%04x\n", 0x424);
CRT>


Во-первых, примеры не эквивалентны. Вариант с printf-ом требует еще одну строчку с вызовом fflush.

Во-вторых, давайте пройдемся по тонкому льду:

Делай раз:
#if PLATFORM_ONE
typedef int value_t;
#else
typedef unsigned long value_t;
#endif

void show(value_t v) {
  printf("0x04x\n", v);
}


Делай два:
typedef double value_t;

void show(value_t v) {
  printf("0x04x\n", v); // Нет, компиляторы далеко не всегда проверяли форматную строку.
}


Делай три:
void as_string(unsigned v) {
  char buf[7]; // 0x1234\0
  sprintf(buf, "0x04x", v);
  ...
}
...
as_string(UINT_MAX);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.