Оптимизация компилятором

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Оптимизация компилятором

Сообщение arthur2 » 13.03.2010 (Сб) 8:30

Логично было бы предположить, что если в коде из разных модулей вызывается одна и та же АПИ с одним и тем же именем, объявленная локально, то после компиляции вызов будет один.

Так ли это? Или такие дубликаты нужно в коде отстреливать?
Скажем, та же CopyMemory объявлена в куче разных модулей проекта. Нужно ли оставить одно объявление на проект, или пусть в каждом модуле своё?

То же с типами: один и тот же тип описан в разных модулях локально. Или лучше сделать одно глобальное описание на весь проект?
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Оптимизация компилятором

Сообщение Хакер » 13.03.2010 (Сб) 10:52

Оптимизацию, желательность которой ты предположил, VB6-компилятор делает. Так что насильно убирать дубликаты не нужно.

То же с типами: один и тот же тип описан в разных модулях локально. Или лучше сделать одно глобальное описание на весь проект?

Здесь ситуация совсем иного рода: описания типов дальше компиляции никуда не пойдут (кроме, возможно, TLB). Но тип, который олицетворяет сущность одного и того же вида, желателен быть один. К тому же, на типы не действует утиная типизация. Так что присвоить let a = b при dim a as Mod1.MyType, b as Mod2.MyType не выйдет, даже если MyType в обоих модулях идентично объявлен.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Оптимизация компилятором

Сообщение Денис » 13.03.2010 (Сб) 13:09

Хакер писал(а):Так что присвоить let a = b при dim a as Mod1.MyType, b as Mod2.MyType не выйдет, даже если MyType в обоих модулях идентично объявлен.

К тому же, если публично объявить MyType (одинаковое имя) в разных модулях, компилятор выдаст ambiguos name и откажется компилировать
Опять глупость сказал.

На самом деле, если заменить Let на LSet, то всё прекрасно сработает.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Оптимизация компилятором

Сообщение arthur2 » 13.03.2010 (Сб) 13:40

Спасибо! Так гораздо удобнее - значит, подключая к проекту какой-то новый модуль, совсем не обязательно отстреливать дубликаты
Хакер писал(а):К тому же, на типы не действует утиная типизация. Так что присвоить let a = b при dim a as Mod1.MyType, b as Mod2.MyType не выйдет, даже если MyType в обоих модулях идентично объявлен.
Ну это понятно - давно проверено :) Но если такой необходимости не возникает в принципе, то, судя по
Хакер писал(а):описания типов дальше компиляции никуда не пойдут
такие локальные дубликаты всё же можно оставить?
Артур
 
   

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Оптимизация компилятором

Сообщение Antonariy » 28.06.2010 (Пн) 14:12

Хакер писал(а):утиная типизация
><
Утиные истории слышал, Черный плащ слышал… Спасите, коллапс мозга!!11 Что это, приведение типа к утке?
Лучший способ понять что-то самому — объяснить это другому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Оптимизация компилятором

Сообщение Хакер » 28.06.2010 (Пн) 14:14

—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Оптимизация компилятором

Сообщение Antonariy » 28.06.2010 (Пн) 14:18

Надо же, это даже не опечатка.
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 104

    TopList