Подробная информация о многострочном формате Microsoft

В некоторые из своих функций API Microsoft использует «многострочный» формат для указания список строк.

Насколько я понимаю, многострока - это буфер с завершающим нулем конкатенированных строк с завершающим нулем. Но это также можно интерпретировать как список строк, разделенных нулевым символом и завершенных двумя нулевыми символами.

Вот пример. Список, состоящий из следующих элементов:

"apple", "banana", "orange"

Становится:

apple\0banana\0orange\0\0

Но теперь я задаюсь вопросом:

Как бы был представлен пустой список ?

Был бы он:

\0

Или:

\0\0

Мне не удалось найти точную документацию, разъясняющую это. Есть подсказка?

9
задан JasonMArcher 3 December 2014 в 22:57
поделиться

3 ответа

\0

9
ответ дан 4 December 2019 в 14:26
поделиться

Это будет \0.

Раймонд Чен описывает, как это работает, в своем блоге: список строк завершается пустой строкой. Если первая строка в списке пуста, сам список пуст.

3
ответ дан 4 December 2019 в 14:26
поделиться

Если вы работаете с ними, много лет назад я написал итератор в стиле STL, который работает с ними:

http://noveltheory.com/iterators/Iterator_N3.htm

2
ответ дан 4 December 2019 в 14:26
поделиться
Другие вопросы по тегам:

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