gpt4 book ai didi

Delphi常量按位表达式

转载 作者:行者123 更新时间:2023-12-03 14:56:24 26 4
gpt4 key购买 nike

可能是一个愚蠢的问题,但对我来说这是一种无聊的好奇心。

我有一些类似这样的 Delphi 代码;

const  KeyRepeatBit = 30;...  // if bit 30 of lParam is set, mark this message as handled  if (Msg.lParam and (1 shl KeyRepeatBit) > 0) then    Handled:=true;...

(代码的目的并不重要)

编译器是否将“(1 shl KeyRepeatBit)”视为可以在编译时计算的内容,从而使其成为常量?如果不是,通过将其计算为数字并用数字替换表达式会有什么好处吗?

最佳答案

是的,编译器在编译时计算表达式并将结果值用作常量。自己用结果值声明另一个常量没有任何好处。

编辑:The_Fox 是正确的。可赋值的类型常量(请参阅 {$J+} 编译器指令)不会被视为常量,在这种情况下,表达式会在运行时计算。

关于Delphi常量按位表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1164354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com