XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Желтая пресса: обучающие статьи
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
Toadcop

offline
Опыт: 54,313
Активность:
exploder, про стл ты в любом случие зафейлился О_О так что идк... всё остальное не важно. так же у них свои аллокаторы памяти через виртуалаллок.
Старый 13.06.2010, 18:28
Doc

offline
Опыт: 63,163
Активность:
Ни разу не было фатала при обращении к нулевому хендлу. Онли прерывание потока. А так статья неплохая, но ничего особо нового и полезного не уяснил =/
DoctorGester добавил:
3637!
Старый 13.06.2010, 18:44
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Просто недавно тут мне поставили варн в трактире за "школоло". А тут СМ такие вежливые и главное на чистом русском без единого намека на сленг разговаривают. Браво товарищи, остальное конечно не важно...
exploder добавил:
Toadcop, ты даже толком не объяснил в чем фейл. Или ты не будешь опускаться до объяснений?
Или как "обучение" только в статье, а в камментах открывают и пьют шампанское?
STL или TR1 это вопросы стандартизации и сути мысли не меняет.

Отредактировано exploder, 13.06.2010 в 21:55.
Старый 13.06.2010, 20:27
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
хорошая статья, как всегда полезно. респект
хотел спросить об одной вещи, все на меня будут показывать пальцем у говорить "нуб!!11", но я хочу все таки спросить:
function ...
    local unit u
    if blabla then
        set u = blabla
	set u = null
    endif
endfunction
будет значить что u - null, или же его все-таки надо будет приписать к null в конце функции?
function ...
    local unit u = null
    if blabla then
        set u = blabla
	set u = null
    endif
endfunction
или так правельнее?
Старый 13.06.2010, 21:28
Toadcop

offline
Опыт: 54,313
Активность:
exploder, у них кастомные структуры что еще объяснять то ?
Старый 13.06.2010, 22:56
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от ScorpioT1001
Когда мы удаляем юнита, удаляется эта структура в памяти


Откуда такая информация ??!
Старый 13.06.2010, 23:52
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
Вопрос к вам програмисты у меня аналогичный как и у пчола
в наработке, которую скидывал диод, автора которой я не помню показывал пример ооп на таймере с перебором структур, скорп вроде видел
так вот автор во время объвления переменных писал так:
local real x = 0.00
local real y = 0.00 и так далее со всеми лок. переменными в ф-ции
И только потом их использовал.
В чем заключаеться отличие от простой инициализации local real x без присваивания сразу?
все переменные использовались позже после входа в цикл
Старый 14.06.2010, 00:12
Toadcop

offline
Опыт: 54,313
Активность:
Цитата:
Откуда такая информация ??!

согласен. очень субъективное заявление =)

Цитата:
В чем заключаеться отличие от простой инициализации local real x без присваивания сразу?
ну так сразу инцылизируется переменая и всё -.- просто так не совсем оптимально делать если много переменых и ни все используется вот и всё. короче это такой трики =) но большой разницы нету. (неучитывая того что операцыя с неинцыализроваными перемеными приведёт у повешанию текущего потока выполнения =) что есть плохо ... )
Старый 14.06.2010, 01:00
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
ответьте на мой пост плиз
Старый 14.06.2010, 03:32
ScorpioT1000
Работаем
offline
Опыт: отключен
bee, ты неясно выражаешься) я имел ввиду что если ты работаешь с переменными, то лучше в начали их "инициализирова" (на самом деле в жассе нет инита как такового, там везде присвоение)
ScorpioT1001 добавил:
Откуда такая информация ??!
из тестов очевидно ?
ScorpioT1001 добавил:
+ это было бы логично
Старый 14.06.2010, 10:12
Toadcop

offline
Опыт: 54,313
Активность:
Цитата:
(на самом деле в жассе нет инита как такового, там везде присвоение)

O.o

вообще то если сделать так...
Код:
local real x
local real y
local real z

...
if trololo then
    set x=0.0
    set y=0.0
    ...
endif


то будет разница в скорости выполнения скрипта. т.е. если ифа не будет то не будет лишней инцыализацыии как раз.

инцыализцыя локальной переменой равна одному чтению из кеша. (!)


т.е. кратко что бы было понятно
>>
скрорпи:
нету инцыализацыие есть присвоение = "инцыализацыя" (первое присвоение) = так же как и просто присвоение переменой значения. (по скоросте выполнения)
>>
это однозначно не так =)

короче не слушайте скрорпи -.- по настоящему всё плохо и мы все умрём (!)
если хотите детали то лучше спрашивайте у адольфа или крокушки. или в крайнем случие у меня -.- ибо в своё время я бегал с стопватчем и всё мерял -.-
Старый 14.06.2010, 15:21
ZeToX2007

offline
Опыт: 7,009
Активность:
ScorpioT1001, а если наш хендл весит не в переменной, а в хеш-таблице ?
Старый 14.06.2010, 15:31
ScorpioT1000
Работаем
offline
Опыт: отключен
Toadcop:
я конченный выродок
ок !
мне адик полгода назад скидывал ассмеблити и там явно было что
int i=0
эквивалентно
int i
i = 0
абсолютно ! одно и то же
я об этом и говорю, ты не понимаешь что в варе нету "инициализации" (как в си например), т.е. инит != начальное значение, хотя по определению это так :) инит в си это спец. операция, когда значение переменной задаётся сразу в момент её создания и никогда иначе !

Отредактировано ScorpioT1001, 14.06.2010 в 16:36.
Старый 14.06.2010, 15:43
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
я не об этом говорил, а например в случаях, когда я выполняю действия в Condition.
function OnSpellCast takes nothing returns boolean
	local unit c
	local location t
	
	if GetSpellAbilityId() == 'A00F' then
		set c = GetTriggerUnit()
		set t = GetSpellTargetLoc()
		call KillUnit(c)
		call blabla(c, t)
			...
	endif

	return false
endfunction

вот в таких случаях лучше сначала, при объявлении задавать значения или это и так null. просто c не будет утечкой? 
bee добавил:
в конце надо ставить c = null; t = null ?
bee добавил:
или они уже равные null
Старый 14.06.2010, 15:47
ScorpioT1000
Работаем
offline
Опыт: отключен
ты создал local unit c но если условие не выполняется, то c не присваивается, это же очевидно, что не надо :)
Старый 14.06.2010, 16:33
Toadcop

offline
Опыт: 54,313
Активность:
Цитата:
int i=0

эквивалентно

int i
i = 0

абсолютно ! одно и то же


ты видимо конченый идиот идк -.-


Цитата:
if GetSpellAbilityId() == 'A00F' then
set c = GetTriggerUnit()
set t = GetSpellTargetLoc()
call KillUnit(c)
call blabla(c, t)
...
endif
тут надо обнулять внутри.
Старый 14.06.2010, 16:39
ScorpioT1000
Работаем
offline
Опыт: отключен
Toadcop:
сорри, я видимо конченый идиот идк -.-
ладно
Старый 14.06.2010, 16:56
Toadcop

offline
Опыт: 54,313
Активность:
ты сначяло написал непонятную хрень что бы запутать потенцыальных читателей.
а потом написал тоже самое что и я с добавкой что я конченый... тут стоит задуматся кто конченый и на скока.

и самое важное причём С и джасс ? -.- разные языки спецыально и делаются что бы иметь разную логику и семантику. в случие джаса первое присвоение переменой и есть инцыализацыя.
короче лучше ничего не писать чем писать хрень которая будет пудрить могзи юзерам.
Старый 14.06.2010, 17:03
ScorpioT1000
Работаем
offline
Опыт: отключен
лол ? инит в жассе это тот мусор который лежит там до присвоение - это и ЕСТЬ инит а не то что ты срёшь в теме )
Старый 14.06.2010, 17:05
Toadcop

offline
Опыт: 54,313
Активность:
Цитата:
лол ? инит в жассе это тот мусор который лежит там до присвоение - это и ЕСТЬ инит а не то что ты срёшь в теме )


тогда инт будет сожержать просто рандом информацыю не так ли ? дай мне пруф твоей теории.
а в целом не надо ты тупо зафейлилса до того как начял даже писать.
Старый 14.06.2010, 17:34

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 05:25.