...
end;
TNode = record
node_data: TNodeDataType;
...
end;
...
procedure NodeDataIO.ReadData(var data);
...
procedure LoadNodeRecursive(const node: TNode);
begin
NodeDataIO.ReadData(PNode(@node)^.node_data);
делать вот это: PNode(@node)^.node_data ?
сейчас всё работает, но может ли это как-то сказаться в будущем, когда компилятор станет слишком умным и что-нибудь решит ещё более оптимизирвоать из-за const ?
А так лучше? (так мне не нравится код, лишние действия добавляет, не существенно, но не нравится)
procedure LoadNodeRecursive(const node: TNode);
var
node_ptr: PNode;
begin
node_ptr:=@node;
NodeDataIO.ReadData(node_ptr^.node_data);
Вопрос снимается... переделаю на указатель изначально в параметре... Благо компилятор сумел это всё оптимизировать так, что код вообще не отличается для моего случая - что я передаю const TNode, что PNode
Обсуждают сегодня