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