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

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

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

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

Сообщение tovit » 25.08.2021 18:07:35

Всегда пользовался режимом компилятора по умолчанию "Free Pascal".
А в чём отличие между этим режимом и режимом "Object Pascal extention"?
Прошу пояснить хотя бы на пальцах или дать ссылку на материал, где это можно прояснить.
tovit
новенький
 
Сообщения: 11
Зарегистрирован: 11.09.2011 14:17:29
Откуда: Astrakhan

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

Сообщение скалогрыз » 25.08.2021 19:01:15

FPC mode
OBJFPC mode

если ты используешь OBJFPC, то
1) у тебя всегда неявно используется ObjPas модуль (по тому же принципу что и модуль System)
2) тип Integer становится LongInt (32-битным, так же как и в режиме Delphi)
3) влючается поддержка Exception-ов
4) синтаскис запрещает совпадение имён параметров методов и имён свойтсв объекта (что в Delphi режиме можно)
всё. засим разницы официально больше нет
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

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

Сообщение tovit » 25.08.2021 22:23:29

спасибо.
главное, что меня волнует, не могу понять различия в объектных моделях тут и там.
tovit
новенький
 
Сообщения: 11
Зарегистрирован: 11.09.2011 14:17:29
Откуда: Astrakhan

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

Сообщение Сквозняк » 28.08.2021 16:59:36

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

Есть.
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.

То есть классы в простом паскале не используешь.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

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

Сообщение runewalsh » 28.08.2021 17:50:27

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

Код: Выделить всё
{$mode fpc} {$modeswitch class}

Type
    A = class
    public
        B: byte;
    end;

begin
end.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 578
Зарегистрирован: 27.04.2010 00:15:25


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23

Рейтинг@Mail.ru