Имена примитивов и наборов выбора
В AutoLISP имена примитивов и наборов выбора - пары длинных целых чисел.
ObjectARX
сохраняет этот стандарт, определяя такие имена как тип массива, следующим образом:
typedef long ads_name[2];
Как с ads_point переменными, ads_name переменные всегда проходят ссылкой, но должен быть назначенный элемент элементом.
Вы можете также копировать примитив или имя набор выбора, вызывая ads_name_set () макрокоманда. Как с ads_point_set () и функциями ObjectARX, результат - второй параметр к макрокоманде.
Следующие типовые кодовые наборы имя newname, чтобы равняться oldname.
ads_name oldname, newname;
if (acdbEntNext(NULL, oldname) == RTNORM)
ads_name_set(oldname, newname);
ОБРАТИТЕ ВНИМАНИЕ на макрокоманду This, подобно ads_point_set () макрокоманда, определен по-другому, в зависимости от того, действительно ли символ __ STDC __ (который замещает стандарт C), определен. Стандартная версия C ads_name_set () требует, чтобы ваша программа включила string.h.
Ads_name_equal () макрокоманда сравнивает названия{*имена*} в следующем примере:
if (ads_name_equal (oldname, newname))
...
Чтобы назначать null значение имени, вызовите ads_name_clear () макрокомандой, и испытанием на null примитив или имя набора выбора с макрокомандой ads_name_nil().
Следующий типовой код очищает набор oldname в предыдущем примере:
Ads_name_clear (oldname);
И следующий код проверяет,является ли имя NULL:
Если (ads_name_nil (oldname))
...
ObjectARX создает следующий тип данных для ситуаций, которые требуют, чтобы имя было указателем скорее чем массив:
typedef long *ads_namep;