Смекни!
smekni.com

Чтобы определить, может ли целое значение быть размещено в таблице атомов, его следует проверить, сравнив с константой MAXINATOM. Еще одна макрокоманда MAKEINATOM, преобразует число в целый атом.

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

Листинг. Применение целых атомов

charszStoredString[6];

WORD wValue = 1000;

ATOM aValue = AddAtom( MAKEINTATOM( wValue ) ) ;

// Значение атома равно 100.

// Строка будет содержать число "#1000".

GetAtomName( aValue, azStoredString, 6 );

Целые атомы на самом деле вообще не добавляются и не удаляются из системы.

Напротив, они синтезируются функциями управления атомами. В приведенном примере тот же самый результат может быть сохранен в строке szStoredString, если функция DeleteAtom() вообще не вызывается, при этом вместо значения wValueподставляется значение aValue.

Таким образом, функция DeleteAtom() может быть безболезненно вызвана и по отношению к целым атомам. А поскольку они вообще не существуют, они и не могут быть удалены, хотя функция DeleteAtom() так или иначе возвращает 0, что указывает на успешное завершение.