OberonCore
https://forum.oberoncore.ru/

SIZE(T) нельзя в константных выражениях?
https://forum.oberoncore.ru/viewtopic.php?f=116&t=2507
Страница 1 из 1

Автор:  Евгений Темиргалеев [ Четверг, 01 Апрель, 2010 11:33 ]
Заголовок сообщения:  SIZE(T) нельзя в константных выражениях?

Language Report писал(а):
SIZE(T) any type INTEGER number of bytes required by T

SIZE cannot be used in constant expressions because its value depends on the actual compiler implementation.
и, гм, компилирует
Код:
CONST      hexLen = 2 * SIZE(INTEGER);
Однако, замечание в LR как рекомендация не выглядит. Или я не правильно понимаю?

Автор:  Info21 [ Четверг, 01 Апрель, 2010 14:44 ]
Заголовок сообщения:  Re: SIZE(T) нельзя в константных выражениях?

Евгений Темиргалеев писал(а):
компилирует
Код:
CONST      hexLen = 2 * SIZE(INTEGER);
Однако, замечание в LR как рекомендация не выглядит. Или я не правильно понимаю?
Это-то фиксировано в языке. А для записевых и массивовых типов -- будет зависеть. Выравнивание и всё такое.

Автор:  Евгений Темиргалеев [ Четверг, 01 Апрель, 2010 16:40 ]
Заголовок сообщения:  Re: SIZE(T) нельзя в константных выражениях?

Info21 писал(а):
Это-то фиксировано в языке.
MIN(INTEGER)..MAX(INTEGER) ... viewtopic.php?p=44485#p44485

И получается, что цитированное замечание, с текущей реализацией компилятора не стыкуется...

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/