Pascal中#的用法

7

问题1:这是什么意思:WriteLn (#$0b)

$0b 应该是十六进制,类似于 0x0b,但是 # 符号呢?

问题2:

x:=readkey;
if ( x = #5) do...
< p > “#5”是指数字“5”吗?那么“#”符号是什么意思呢?< /p > < p > 多谢。< /p >

请注意,即使在(甚至不是那么)最新的Delphi和FPC版本中,大于255的数字也被视为widechars,作为UTF16字符串类型的基本实体使用的16位基数。 - Marco van de Voort
2个回答

7
在数字前面的#表示一个带有指定值的字符(十进制和十六进制数都可以用$来表示)。因此,#5chr(5)CtrlE相同。

为了回答这个问题,我不得不查找chr的帮助,但至少我知道要查找chrchr(65) = #65 = 'A' - DCShannon
不总是这样。在D3..D2007和FPC中,您可以使用#$1234定义一个widechar,chr()仅返回一个字节值。我离开了我的开发机器,所以无法快速测试const xx= #$1234; begin writeln(sizeof(xx), sizeof(chr($1234))); end. - Marco van de Voort

2

啊,回忆……

#x 确实等同于 chr(x),就像 Greg Hewgill 所说的那样。

我想再补充一些信息。
扩展键,即箭头键,发送零和字符的代码:

  ch := ReadKey;
  if ch = #0 then
  begin // extended key
    ch := ReadKey; // <-- read again to get the actual code
  end else ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接