SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Closed Thread
 
Thread Tools Display Modes
Old 29/04/2011, 06:32 PM   #1
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Question Проблема с компиляцией макроса.

Я себе уже весь мозг вынес, проблема в следующем, есть макрос вида:
pawn Code:
#define CreateCarsNearPlayers(%0,%1,%2,%3,%4); \
if(%2 == 666) \
{ \
    %2 = otherVehicle[random(otherVehicleCount)]; \
} \
else \
{ \
    switch(%2) \
    { \
        case publicServiceVehicles: \
        { \
            randcol = -1; \
            randcol2 = -1; \
        } \
    } \
} \
if(%3 != INVALID_PLAYER_ID && %1 == -1) \
{ \
    %1 = CreateVehicle(%2,%0,randcol,randcol2,never); \
    SetVehicleNumberPlate(%1,%4); \
} \
else if(%1 != -1) \
{ \
    DestroyVehicle(%1); \
    %1 = -1; \
}
Проблема в том что в таком виде он не компилируется, компилятор тупо виснет, кстати забавно, юзает ровно 50% проца но система не виснет, но сейчас не об этом.

Методом исключения я нашел в чем проблема, она в строке
pawn Code:
%1 = CreateVehicle(%2,%0,randcol,randcol2,never); \
если её закоментировать компиляяция проходит, но это строка мне нужна.

Есть у кого какие идеи из-за чего это
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline  
Old 29/04/2011, 06:35 PM   #2
Romanius
Gangsta
 
Romanius's Avatar
 
Join Date: Jun 2009
Location: Bishkek, Kyrgyzstan
Posts: 722
Reputation: 26
Default Re: Проблема с компилцией макроса.

1. меньше пробелов.
2. А не воспользоваца ли тебе функцией?
3. #define CreateCarsNearPlayers(%0,%1,%2,%3,%4); if(%2 == 666) \
__________________
Ешь ананасы, рябчиков жуй, день твой последний приходит, буржуй!
Romanius is offline  
Old 30/04/2011, 04:56 AM   #3
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: Проблема с компилцией макроса.

Пробелы тут не причем, уже наэксперементировался с этим, даже в строку делал.
Сейчас и так работает на функции, но разница в скорости вызова функции и просто кода, говорит сама за себя.
Это равносильные записи.

Я конечно могу все это без функций ручками прописать в местах вызова, но это будет очень длинная портянка, вот и хочется сделать макросом, чтобы по коду была одна строчка.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline  
Old 30/04/2011, 05:35 AM   #4
Romanius
Gangsta
 
Romanius's Avatar
 
Join Date: Jun 2009
Location: Bishkek, Kyrgyzstan
Posts: 722
Reputation: 26
Default Re: Проблема с компиляцией макроса.

и какой же выигрышь? 100 наносекунд?! оптимизатор хренов.
__________________
Ешь ананасы, рябчиков жуй, день твой последний приходит, буржуй!
Romanius is offline  
Old 30/04/2011, 05:38 AM   #5
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: Проблема с компиляцией макроса.

В 1.5 - 2 раза, с учетом того что у меня этот код повторяется несколько раз, прирост существенный.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline  
Old 30/04/2011, 05:42 AM   #6
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: Проблема с компиляцией макроса.

Quote:
Originally Posted by Stepashka View Post
В 1.5 - 2 раза, с учетом того что у меня этот код повторяется несколько раз, прирост существенный.
Сейчас полное выполнение скрипта со всеми итерациями занимает секунды 2.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline  
Old 30/04/2011, 07:23 AM   #7
Romanius
Gangsta
 
Romanius's Avatar
 
Join Date: Jun 2009
Location: Bishkek, Kyrgyzstan
Posts: 722
Reputation: 26
Default Re: Проблема с компиляцией макроса.

дело твое, оптимизатор....
__________________
Ешь ананасы, рябчиков жуй, день твой последний приходит, буржуй!
Romanius is offline  
Old 05/02/2017, 11:57 PM   #8
Diman777
Huge Clucker
 
Diman777's Avatar
 
Join Date: Aug 2011
Location: Ростов-на-Дону
Posts: 439
Reputation: 22
Default Re: Проблема с компиляцией макроса.

По поиску нужна была инфа по SetVehicleNumberPlate, и наткнулся на твой макрос. Ну судя потому, что не ответил - значит проблема не решилась твоя?)
Мне тоже интересно почему виснет. Кто в силах понять почему компилятор отказывается работать в данном случае?)
Diman777 is offline  
Old 06/02/2017, 05:58 AM   #9
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: Проблема с компиляцией макроса.

Господи, ну и некропостер.
Потому что макросы не предназначены для подобного.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline  
Closed Thread

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Проблема с анимацией mid119 Русский/Russian 3 04/04/2011 03:29 PM
Проблема с командами seregamix Русский/Russian 12 14/02/2011 04:41 PM
Проблема с Антиматом K-911 Русский/Russian 5 27/12/2010 07:20 PM
проблема с транспортом EROS_174RUS Русский/Russian 3 29/09/2010 05:51 PM
ПРоблема со стоком sky13 Русский/Russian 3 23/09/2010 06:17 PM


All times are GMT. The time now is 12:16 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.