Dilma писал(а):
SubType = 0 для всех типов отличных от data_codeПока не заметил, но это, действительно - дело техники
Просто я не въехал: ты говорил оказывается (это я сейчас так думаю) про дублирование одинаковых вычислений
Дык тут я еще подолью соли на рану
Есть фундаментальная вещь в языке: атрибут volatile
Так вот: в CPP он есть, а в Дельфях его нет по определению.
Если какая-то переменная имеет этот атрибут, это означает, что нельзя использовать логику: там хранится то, чего именно ты записал (или прочитал) оттуда ранее. Например, это значение может изменить параллельный поток, или еще какая ерунда.
Если в вышеприведенном выражении хоть одна такая, не имеет право, к примеру - HUB, произвести такие вычисления, и отправить по всем веткам результат.
Кстати говоря, наличие (или нет) такого понятия - volatile, в языке, серьезно определяют его возможности "агрессивной" оптимизации
И еще кстати: это нас касается тоже...
Как я на это наступал
Пользовал IAR-овский CPP под embeded.
Main у меня, значит, обнулил некий флаговый регистр и ждет в цикле появления каких-то там битиков (которые установят прерывания, прописанные в другом совсем файле, да и на другом языке - asm-е).
Ну и пустой Main мне компилировался - dead-code-elimination
Пока не прописал сей знаменитый атрибут этому флаговому регистру.
С тех пор я про это знаю.