В чём отличие между режимоFree Pascal ObjectPascal extention

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
tovit
новенький
Сообщения: 11
Зарегистрирован: 11.09.2011 14:17:29
Откуда: Astrakhan

В чём отличие между режимоFree Pascal ObjectPascal extention

Сообщение tovit »

Всегда пользовался режимом компилятора по умолчанию "Free Pascal".
А в чём отличие между этим режимом и режимом "Object Pascal extention"?
Прошу пояснить хотя бы на пальцах или дать ссылку на материал, где это можно прояснить.
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

FPC mode
OBJFPC mode

если ты используешь OBJFPC, то
1) у тебя всегда неявно используется ObjPas модуль (по тому же принципу что и модуль System)
2) тип Integer становится LongInt (32-битным, так же как и в режиме Delphi)
3) влючается поддержка Exception-ов
4) синтаскис запрещает совпадение имён параметров методов и имён свойтсв объекта (что в Delphi режиме можно)
всё. засим разницы официально больше нет
tovit
новенький
Сообщения: 11
Зарегистрирован: 11.09.2011 14:17:29
Откуда: Astrakhan

Сообщение tovit »

спасибо.
главное, что меня волнует, не могу понять различия в объектных моделях тут и там.
Сквозняк
энтузиаст
Сообщения: 1159
Зарегистрирован: 29.06.2006 22:08:32

Сообщение Сквозняк »

скалогрыз писал(а):всё. засим разницы официально больше нет

Есть.
5) В функциях результат можно записывать в переменную Result. Бесполезное новшество, но оно есть.
6) По другому выплёвываются ошибки в консоль. Достаточно прилинковать хоть один модуль с ObjPas синтаксисом и это случится.

tovit писал(а):главное, что меня волнует, не могу понять различия в объектных моделях тут и там.

Вот так ты не скомпилируешь:

Код: Выделить всё

{$mode fpc}

Type
A = class
public
B: byte;
end;

begin
end.


А так скомпилируешь:

Код: Выделить всё

{$mode objfpc}

Type
A = class
public
B: byte;
end;

begin
end.

То есть классы в простом паскале не используешь.
Аватара пользователя
runewalsh
энтузиаст
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Сообщение runewalsh »

Сквозняк писал(а):То есть классы в простом паскале не используешь.

Код: Выделить всё

{$mode fpc} {$modeswitch class}

Type
    A = class
    public
        B: byte;
    end;

begin
end.
Ответить