|
|
| Посл.отвђт | Сообщен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 я и забыл! Голова — продолжение шеи :) |