является 'абсолютным' быстрее, чем Перемещение ()?

int foo::i = 0; 

правильный синтаксис для инициализации переменной, но это должно войти в исходный файл (.cpp), а не в заголовке.

, поскольку это - статическая переменная, компилятор должен создать только одну копию его. У Вас должна быть строка "интервал foo:i" некоторые, где в Вашем коде для сообщения компилятора, куда поместить его иначе, Вы получаете ошибку ссылки. Если это будет в заголовке, то Вы получите копию в каждом файле, который включает заголовок, поэтому доберитесь, умножают определенные ошибки символа от компоновщика.

5
задан Georg Fritzsche 25 May 2010 в 10:11
поделиться

4 ответа

absolute не выполняет никаких операций; он объявляет, что адрес переменной совпадает с адресом другой переменной.

Move () выполняет операцию копирования, которая занимает некоторое время.

При использовании absolute обе переменные хранятся по одному адресу, ваше второе объявление сохраняет вары в разных местах.

18
ответ дан 18 December 2019 в 05:31
поделиться

Директива «absolute» указывает на ту же память, что и указанная переменная. Никакой код не выполняется, так что да, он быстрее, чем Move или любой другой код.

9
ответ дан 18 December 2019 в 05:31
поделиться

'Absolute' - это просто еще одна форма приведения типов, как если бы вы получили ссылку на местоположение вашего DWORD 'A' с указателем PByte для работы с байтами как: PByte (@A) ^ [0]: = 3, PByte (@A) ^ [1]: = 4 и т. Д. Вы ковыряете (или читаете) переменную DWORD другим способом. Паскаль - это строго типизированный язык, но с приведением типов (или АБСОЛЮТНЫМ) вы можете делать практически все, что угодно. Bri

6
ответ дан 18 December 2019 в 05:31
поделиться

как работает «абсолютный»?

См. Абсолютный (для) новичков

1
ответ дан 18 December 2019 в 05:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: