Access 2002

Оператор Not


Рано или поздно в переменной, значение которой вы хотите изменить на противоположное, окажется что-то, что не может быть интерпретировано как True (-1) или False (0), а результат в этом случае непредсказуем. Оператор Not предназначен только для работы с логическими значениями и ни с какими другими.

Тест 15: Тип данных Byte работает не быстрее, чем Long

Выше мы овали вам по возможности использовать типы данных меньшей длины, поскольку при прочих равных условиях они работают быстрее. Однако из этого правила есть исключение: при выполнении математических операций над целыми числами ни один тип данных не покажет такой производительности, как Long. Это значит, что, выбирая между переменными типа Long, Integer или Byte, лучше всего остановиться на Long.

Почему? Если Long обрабатывается быстрее Variant, почему Byte не обрабатывается быстрее Long? Эта логика была бы верна, если бы не тот факт, что VBA оптимизирован для 32-разрядных операций. Внутренняя архитектура вашего компьютера именно 32-разрядная, то есть базовые операции всегда выполняются над данными размером 32 бита, а это и есть размер переменной типа Long. Таким образом, при операциях с данными типа Long VBA не нужно делать никакой дополнительной работы, операции с переменными типа Integer влекут некоторые накладные расходы, а операции с переменными типа Byte — еще большие. Поэтому везде, где выполняются расчеты, не требующие учета дробной части чисел, лучше использовать переменные типа Long. (Просмотрите также полные тестовые процедуры Testl5a и Testl5b в модуле класса OptimizingTests.)

Единственным случаем, когда тип данных Byte действительно необходим, является работа с байтовыми массивами.

Комментарии закрыты