gpt4 book ai didi

delphi - 常量 `array of cardinal` 产生错误 'Constant expression violates subrange bounds"

转载 作者:行者123 更新时间:2023-12-03 14:57:29 25 4
gpt4 key购买 nike

为什么使用以下代码:

const
ANSICOLORS: array of cardinal = [
$000000,//0
$800000,//1, compilation error starts with this value
$008000,//2
$808000,//3
$000080,//4
$800080,//5
$008080,//6
$D0D0D0,//7
$3F3F3F,//8
$FF0000,//9
$00FF00,//A
$FFFF00,//B
$0000FF,//C
$FF00FF,//D
$00FFFF,//E
$FFFFFF];//F

在 Delphi XE4(win32 和 win64)下会产生以下编译错误:

[dcc32 Error] Debug.pas(66): E1012 Constant expression violates subrange bounds

$800000不在Cardinal范围内吗?

最佳答案

您正在使用 XE7 中引入的功能。

声明动态数组常量。

Dynamic arrays_Delphi xe7

String-Like_Operations_Supported_on_Dynamic_Arrays

<小时/>

在XE4中,这是作为一个集合来计算的,其中序数不能超过255。

因此出现错误E1012常量表达式违反子范围边界

通过声明修复它:

const
ANSICOLORS: array[0..15] of cardinal = (
$000000,//0
$800000,//1,
$008000,//2
$808000,//3
$000080,//4
$800080,//5
$008080,//6
$D0D0D0,//7
$3F3F3F,//8
$FF0000,//9
$00FF00,//A
$FFFF00,//B
$0000FF,//C
$FF00FF,//D
$00FFFF,//E
$FFFFFF);//F

关于delphi - 常量 `array of cardinal` 产生错误 'Constant expression violates subrange bounds",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54839330/

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