Поделиться через


Определители формата в C++

Обновлен: Ноябрь 2007

Этот раздел применим к:

Выпуск

Visual Basic

C#

C++

Web Developer

Express

Тема не применяется Тема не применяется Тема применяется Тема не применяется

Standard

Тема не применяется Тема не применяется

Тема применяется

Тема применяется

Pro и Team

Тема не применяется Тема не применяется

Тема применяется

Тема применяется

Обозначения:

Тема применяется

Применяется

Тема не применяется

Не применяется

Тема применяется, но команда по умолчанию сокрыта

Команда или команды по умолчанию скрыты.

При отладке машинного кода в окне контрольных значений или диалоговом окне "Быстрая проверка", можно изменить формат, в котором показаны значения, с помощью описателей формата.

(Большинство описателей формата используется только для машинного кода, но в Visual C# имеется ограниченный набор описателей. Сведения содержатся в разделе Определители формата в C#.)

Можно также использовать описатели форматов в окне интерпретации, окне команд и даже в окнах исходного кода. При наведении указателя на выражение в этих окнах, результат будет представлен в окне подсказки. Окна подсказки будут отображать описатель формата.

Пример

Предположим, что nVar — целочисленная переменная, и в окне "Наблюдение" показано, что она содержит значение 0x0065. Чтобы представить это значение в символьном, а не целочисленном формате, в столбце "Имя" после имени переменной добавьте указатель символьного формата c:

nVar,c

Вместо целочисленного значения 0x0065 столбец "Значение" теперь показывает символьное значение 101 'e'.

Если требуется применить указатель формата к элементам массива или членам объекта, необходимо применить его непосредственно к каждому элементу или члену. Ко всему массиву или объекту применить описатель невозможно. Например, предположим, что имеется массив nArray и необходимо представить первые четыре элемента в символьном формате. Для этого достаточно ввести в окне Наблюдение следующие выражения:

nArray[0],c
nArray[1],c
nArray[2],c
nArray[3],c

В следующих таблицах показаны указатели формата, распознаваемые отладчиком.

Описатель

Формат

Выражение

Отображаемое значение

d,i

Десятичное целое число со знаком

0xF000F065, d

-268373915

u

Десятичное целое число без знака

0x0065, u

101

o

Восьмеричное целое число без знака

0xF065, o

0170145

x,X

Шестнадцатеричное целое число

61541, x

0x0000F065

l,h

Префикс длинного или короткого формата для спецификаторов d, i, u, o, x и X

00406042,hx

0x0c22

f

Число с плавающей запятой со знаком

(3./2.), f

1.500000

e

Число в научном представлении со знаком

(3./2.), e

1.500000e+000

g

Число с плавающей запятой со знаком или число в научном представлении со знаком, в зависимости от того, какой формат короче

(3./2.), g

1.5

c

Отдельный знак

0x0065, c

101 'e'

s

String

0x0012fde8, s

"Hello world"

su

Строка Юникода

0x0012fde8, su

"Hello world"

s8

Строка UTF-8

0x0012fde8, s8

"Hello world"

hr

Код ошибки HRESULT или Win32 (в настоящее время отладчик автоматически расшифровывает коды HRESULT, и в этих случаях данный описатель не требуется)

0x00000000L, hr

S_OK

wc

Флаг класса Window

0x00000040, wc

WC_DEFAULTCHAR

wm

Номер сообщения Windows

0x0010, wm

WM_CLOSE

!

Необработанный формат, все настройки представления типов данных не учитываются

i !

4

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

Символ

Формат

Выражение

Отображаемое значение

ma

64 знака ASCII

<адрес>, ma

0x0012ffac .4...0...".0W&.......1W&.0.:W..1...."..1.JO&.1.2.."..1...0y....1

m

16 байт в шестнадцатеричном формате и затем 16 знаков ASCII

<адрес>, m

0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&..

mb

16 байт в шестнадцатеричном формате и затем 16 знаков ASCII

<адрес>, mb

0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&..

mw

8 слов

<адрес>, mw

0x0012ffac 34B3 00CB 3084 8094 22FF 308A 2657 0000

md

4 двойных слова

<адрес>, md

0x0012ffac 00CB34B3 80943084 308A22FF 00002657

mq

2 учетверенных слова

<адрес>, mq

0x0012ffac 7ffdf00000000000 5f441a790012fdd4

mu

2-байтные знаки (Юникод)

<адрес>, mu

0x0012fc60 8478 77f4 ffff ffff 0000 0000 0000 0000

Описатель размера для представления указателей в виде массивов

Если есть указатель на объект, который требуется просмотреть в виде массива, то можно использовать целое число для указания числа элементов массива:

ptr,10

См. также

Задачи

Практическое руководство. Просмотр выражения в отладчике

Другие ресурсы

Окна переменных