· Начало · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.HEAP —› Переопределение типов в MASM'e

Посл.отвђт Сообщенiе


Дата: Янв 6, 2004 15:06:59
Правка

При переносе «Руководства программистов» по FASM'у не заметил ничего по переопределению типов.

Т.е. typedef в FASM'е нет? Сразу задал себе вопрос: а как быть? И сразу получил ответ: макросы. Как обычно, в FASM'е всё решается с помощью макросов. А как же в МASM'е?
Я проверил и вот результаты:
1)zword textequ <DWORD> (или через equ) — всё работает без ограничений.
2)zword textequ <BYTE> — используя textequ можно переопределять идентификаторы типов (zword обозначал двойное слово, теперь байт). Хорошо ли это? Не знаю, но в ЯВУ это запрещено (по крайней мере в ObjectPascal и VC++).
3)использование typedef не позволяет переопределять идентификаторы типов.

А так, есть ли какие-нибудь другие различия между textequ и typedef? Ведь всё равно строгого контроля типов в MASM нет, проверяется только размер типа…


Дата: Янв 6, 2004 15:49:47

IceStudent
Afaik textequ переваривается компилятором как поиск и замена, а typedef - это полноценное определение типа данных равноправного с byte, word и т.п.
Например,
.model tiny
pbyte typedef ptr byte
mov ax,sizeof pbyte ; B8 0002

.model large
pbyte typedef ptr byte
mov ax,sizeof pbyte ; B8 0004


всё равно строгого контроля типов в MASM нет
В понимании java (pure pascal) нет, а вообще есть.


Дата: Янв 6, 2004 16:21:58
Правка

q_q
О, о typedef ptr я и забыл! Голова — продолжение шеи :)