Кто-нибудь знает, когда в FPC появятся нормальные макросы,
а то конструкцией вида {$define OPS:=A+B} полезного много не сделаешь?
Модератор: Модераторы
#if DBG
#define ExInitializeFastMutex(_FastMutex) \
(_FastMutex)->Count = 1; \
(_FastMutex)->Owner = NULL; \
(_FastMutex)->Contention = 0; \
KeInitializeEvent(&(_FastMutex)->Event, \
SynchronizationEvent, \
FALSE);
#else
#define ExInitializeFastMutex(_FastMutex) \
(_FastMutex)->Count = 1; \
(_FastMutex)->Contention = 0; \
KeInitializeEvent(&(_FastMutex)->Event, \
SynchronizationEvent, \
FALSE);
#endif // DBG
procedure (var FM: _FastMutex);
begin
{$IFDEF DBG}
FM.Count:=1;
FM.Owner:=Nil;
FM.Contention:=0;
KeInitializeEvent(@FM.Event, SynchronizationEvent, FALSE);
{$ELSE}
FM.Count:=1;
FM.Contention:=0;
KeInitializeEvent(@FM.Event, SynchronizationEvent, FALSE);
{ENDIF}
end;
{$IFDEF DBG}
{$DEFINE ExInitializeFastMutex:=
(FM)^.Count:=1;
(FM)^.Owner:=Nil; // А ошибку поправил, продолжаю не любить с++
(FM)^.Contention:=0;
KeInitializeEvent(@(FM^).Event, SynchronizationEvent, FALSE);
}
{$ELSE}
{$DEFINE ExInitializeFastMutex:=
(FM^).Count:=1;
(FM^).Contention:=0;
KeInitializeEvent(@(FM^).Event, SynchronizationEvent, FALSE);
}
{$ENDIF}
а потом...
{$DEFINE FM:=MyMutex} ExInitializeFastMutex
procedure (var FM: _FastMutex); inline;
(_FastMutex)->Count = 1;
(_FastMutex)^.Count = 1;
fumction myFunc(Var i: MyRec): boolean
fumction myFunc( i: PMyRec): boolean
Perviraz viju takoe obyavlenie direktiv, eto tochno rabotaet?{$DEFINE ExInitializeFastMutex:=
FM.Count:=1;
FM.Owner:=Nil; // А ошибку покажи, а то я в С++ не особо шпарю, особенно с указателями
FM.Contention:=0;
KeInitializeEvent(@FM.Event, SynchronizationEvent, FALSE);
}
(_FastMutex)^.Count = 1;
fumction myFunc( i: PMyRec): boolean
fumction myFunc(Var i: MyRec): boolean
Perviraz viju takoe obyavlenie direktiv, eto tochno rabotaet?
{$MACRO ON} именно MACRO, а не MACROS как в документации!
LuckyDevil писал(а):ushakov ,kak ti dumaesh, chto luchshe, skorost' kompilyacii ili compactnii-bistrii kod?
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9