[Вопрос] define
|
|
xomach | Дата: Понедельник, 24 Июня 2013, 21:25:56 | Сообщение # 1 |
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
| верно описан макрос?
Код define AddDummy(u,spd,angle,radius) = { DummyNum++; Dummy[DummyNum]=shell.create(); Dummy[DummyNum].u=u; Dummy[DummyNum].spd=spd; Dummy[DummyNum].angle=angle; Dummy[DummyNum].radius=radius; }
|
|
|
|
Ty3uK | Дата: Понедельник, 24 Июня 2013, 21:30:41 | Сообщение # 2 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Да. Вот только не забудь, что Цитата (cJASS Manual) Внимание! Так как парсер не проверяет типы аргументов макроса, это может приводить к ошибкам по невнимательности. Контроль за значениями, передаваемыми макросам, остаётся на совести программиста.
|
|
|
|
xomach | Дата: Вторник, 25 Июня 2013, 11:29:45 | Сообщение # 3 |
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
| а как вообще макро со скобками работает? Например: define def(U) = RemoveUnit(U) вызовет ошибку?
Сообщение отредактировал xomach - Вторник, 25 Июня 2013, 11:30:35 |
|
|
|
Ty3uK | Дата: Вторник, 25 Июня 2013, 11:33:19 | Сообщение # 4 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Нет, это макрос с аргументами
|
|
|
|
xomach | Дата: Вторник, 25 Июня 2013, 11:36:24 | Сообщение # 5 |
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
| Ty3uK, то есть, он только в ( ) заменяет на аргумент? Как он отличает, где мне нужна подстрока в исходном виде, а где аргумент?
|
|
|
|
Ty3uK | Дата: Вторник, 25 Июня 2013, 11:38:00 | Сообщение # 6 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Исходники лежат в открытом доступе - можно поглядеть если интересно.
|
|
|
|
xomach | Дата: Вторник, 25 Июня 2013, 11:38:08 | Сообщение # 7 |
7 уровень
Группа: Проверенные
Сообщений: 484
Награды: 0
Репутация: 128
Блокировки:
| Код setdef SET(x) = Spell[SpellsNum].x = x так можно, или же так: Код setdef SET(x) = Spell[SpellsNum].##x##=##x
|
|
|
|
Ty3uK | Дата: Вторник, 25 Июня 2013, 11:42:38 | Сообщение # 8 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| xomach, тестируй на здоровье.
|
|
|
|
Goodie | Дата: Вторник, 25 Июня 2013, 13:47:09 | Сообщение # 9 |
4 уровень
Группа: Проверенные
Сообщений: 84
Награды: 0
Репутация: 57
Блокировки:
| xomach, http://cjass.xgm.ru/manual-ru#htoc13 Читай на здоровье
cJass рулит! Power of Mighty[Work In Progress]
|
|
|
|
Ty3uK | Дата: Вторник, 25 Июня 2013, 14:40:58 | Сообщение # 10 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Goodie, там много чего не описано.
|
|
|
|
Goodie | Дата: Вторник, 25 Июня 2013, 16:23:18 | Сообщение # 11 |
4 уровень
Группа: Проверенные
Сообщений: 84
Награды: 0
Репутация: 57
Блокировки:
| Ty3uK, Ну по крайней мере есть азы
cJass рулит! Power of Mighty[Work In Progress]
|
|
|
|
Ty3uK | Дата: Вторник, 25 Июня 2013, 16:25:47 | Сообщение # 12 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Угу. Но вот половина препроцессорных плюшек не описана.
|
|
|
|
SirNikolas | Дата: Вторник, 25 Июня 2013, 19:38:02 | Сообщение # 13 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Цитата (xomach) setdef SET(x) = Spell[SpellsNum].x = x Цитата (xomach) setdef SET(x) = Spell[SpellsNum].##x##=##x В обоих случаях результат будет один и тот же - заменятся оба икса. А вообще
|
|
|
|