можете обьяснить или показать пример как на cjass хранить функцию в define и вызывать ее аргументами?
в мануэле cjass про вызов функции не очень понятно написали
а вот про обычные макросы я уже знаю даже аргументами уже пльзуюсь) полезная штука)
вот бы функции так же вызывать одна функция для всех) будет здорово)
короче как функцию хранить в
в мануэле cjass про вызов функции не очень понятно написали
а вот про обычные макросы я уже знаю даже аргументами уже пльзуюсь) полезная штука)
вот бы функции так же вызывать одна функция для всех) будет здорово)
короче как функцию хранить в
define
registet_func(type) - это что за type? аргументы как передаются
endefine?
и как вызвать макрос функцию и
например имя моей функции
blablabla(здесь аргументы unit real integer)
например имя моей функции
blablabla(здесь аргументы unit real integer)
Принятый ответ
Мануал описывает поведение макросов достаточно понятно. Разъясняя пример в теме другими словами
define MyFunc(type) = {
nothing MyFunc_##type(type x){
BJDebugMsg('type')
}
}
Если препроцессор, обрабатывая код, наткнется на строчку, где вызывается макрос MyFunc, например
// Где-то в CustomScript карты
MyFunc(real)
Он применит указанный выше макрос, заменив в нем слово type на указанное в скобках MyFunc слово real, в результате чего получим код
// MyFunc(real) убрано препроцессором и заменено кодом ниже
nothing MyFunc_real(real x){
BJDebugMsg("real")
}
Что впоследствии транслируется из cJass в обычный Jass2
function MyFunc_real takes real x returns nothing
call BJDebugMsg("real")
endfunction
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован ImbaStyle
а какие символы разбивания про разбивку чечи не шло же
Отредактирован ImbaStyle
Отредактирован GetLocalPlayer