Автокликер Clickermann :: Форум

Основной раздел => Предложения => Topic started by: Сергей on November 13, 2012, 06:11:26 PM

Title: Макросы
Post by: Сергей on November 13, 2012, 06:11:26 PM
Макросы позволяют пользователю расширять синтаксис языка. Хоть они и сложны в реализации, их полезность очевидна.
Пример макроса:

Code: (clickermann) [Select]
#define echo printТут макросом просто создается псевдоним для функции print.

Code: (clickermann) [Select]
#define slclick(\1,\2,\3) lclick(\1,\2)\
waitms(\3)\
lclick(\1,\2)\
waitms(\3)

slclick(1000,1000,30)
А это уже пример по-сложнее.

Слеши с цифрами - переменные макроса. Можно ставить любое значение, в до 10.
Слеши в конце строки - перевод строки без потери "фокуса" макроса. Т.е. без них перенос строки означает конец макроса.

При запуске скрипта, препроцессором все это переводится в вид:
Code: (clickermann) [Select]
lclick(1000,1000)
waitms(30)
lclick(1000,1000)
waitms(30)
И уже исполняется.

В наше время, когда макросы есть даже в ассемблере, хотелось бы видеть их и в кликермане.
Да и какая-никакая замена пользовательских фун-ий.
Конечно навряд ли явтор сделает эту фичу в ближайших версиях, но пусть тут все равно висит эта "хотелка"  ::)
Title: Re: Макросы
Post by: Johnny on November 14, 2012, 08:41:54 AM
чем в данном случае (кроме более страшного синтаксиса) макросы будут отличаться от теперешних подпрограмм и в обозримом будушем польз. функций?

идея кстати сделать #define (для задания псевдонимов и констант) у меня была.
если повесить константы на препроцессор, то кликер будет работать шустрее чем сейчас в этом плане.
Title: Re: Макросы
Post by: Сергей on November 14, 2012, 08:07:06 PM
Тем что они с аргументами, и обрабатываются препроцессором. Так же с помощью них можно и синтаксис расширить, ну например вот так:
Code: (clickermann) [Select]
#define ifn(\1) if(\1 = 0)
#define iff(\1) if(\1 = 0)
#define ift(\1) if(\1 = 1)

И да, быстродействие конечно же.
Title: Re: Макросы
Post by: MaxP on September 04, 2014, 04:18:04 PM
+1, но было бы приятнее видеть в виде переменных стандартные переменные clickermann, чем слеш-цифру