Массив типизированных констант
Опубликовано 14.01.2011 г. 13:17
Вряд ли эта заметка заслуживает внимания, просто мысли вслух. Вроде как достаточно часто мы определяем локальные константы, в частности массивы таких констант. Допустим мы имеем 3 целочисленных константы, и массив констант. В массив мы добавляем эти же 3 константы. т.е следующий фрагмент кода:
const A = 1; B = 2; C = 3; data : array[0..2] of integer = (A,B,C);
Все хорошо, все работает. Однако стоит нам явно указать что константа имеет тип integer:
const A : integer = 1; B = 2; C = 3; data : array[0..2] of integer = (A,B,C);
как мы получаем
[DCC Error] PrognoseKernel.pas(97): E2026 Constant expression expected
в строке определения массива. видимо ошибка компилятора. а хотелось сделать массив TGUID констант (:
14.01.2011 в 15:50
14.01.2011 в 16:05
че то особо типизированными никогда не пользовался, дак и не задумывался о таком.
действительно, можно в коде значение поменять такой константы
14.01.2011 в 16:27
const a=TGUID('???');
14.01.2011 в 19:03
первые подставляются на этапе компиляции,
вторые как писалось выше все же являются по большому счету переменными, хотя напрямую их изменить нельзя, просто присвоив значение.
18.01.2011 в 11:00