Что-нибудь как c# параметрические усилители в C++?

Это - текстовое кодирование двоичных данных, где результирующий текст имеет только буквы, числа и символы "+", "/" и "=". Это - удобный способ хранить/передавать двоичные данные по медиа, который конкретно используется для текстовых данных.

, Но почему Основа 64? Эти две альтернативы для преобразования двоичных данных в текст, которые сразу приходят на ум:

  1. Десятичное число: сохраните десятичное значение каждого байта как три числа: 045 112 101 037 и т.д., где каждый байт представлен на 3 байта. Данные чрезмерно увеличиваются в размерах втрое.
  2. Шестнадцатеричный: сохраните байты как шестнадцатеричных пар: 1 А AC 47 0D и т.д., где каждый байт представлен на 2 байта. Данные чрезмерно увеличиваются в размерах вдвое.

Основа 64 карты 3 байта (8 x 3 = 24 бита) в 4 символах, которые охватывают 6 битов (6 x 4 = 24 бита). Результат смотрит что-то как "TWFuIGlzIGRpc3Rpb...". Поэтому чрезмерное увеличение размера является только простым 4/3 = 1.3333333 раза оригинал.

20
задан devoured elysium 20 July 2009 в 20:06
поделиться

3 ответа

Для неуправляемого C ++ с тем же удобным синтаксисом, №

Но есть поддержка списков переменных аргументов для функций в C ++.

Обычно вы объявляете с последним параметром в виде многоточия (...), а в теле функции используйте вызовы va_start () / va_arg () для анализа предоставленного списка параметров.

Этот механизм небезопасен по типу, и вызывающий может передать что угодно, поэтому вы должны четко задокументировать открытый интерфейс функции и то, что вы ожидаете передать.

Информацию об управляемом коде C ++ см. в комментариях Рида.

16
ответ дан 29 November 2019 в 23:37
поделиться

В усилении имеется библиотека именованных параметров (если я правильно понял, что такое параметры в C #). Он позволяет писать такие функции:

int y = lib::f(_name = "bob", _index = 2);

Ничего не могу сказать о значительных накладных расходах.

-1
ответ дан 29 November 2019 в 23:37
поделиться

Да. В стандартном C ++ вы можете использовать синтаксис va_arg и .... См. MSDN для получения дополнительной информации .

Для C ++ / CLI есть ярлык для этого.

Вы делаете это как:

void TheMethod( String^ firstArgument, ... array<Object^>^ variableArgs );

См. Это сообщение в блоге для получения подробной информации .

25
ответ дан 29 November 2019 в 23:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: