小编T. *_*sol的帖子

声明一系列常量

我有这可能是一个声明问题:

我声明了一个const int数组:

const int my_array[] = {
    // data...
}
Run Code Online (Sandbox Code Playgroud)

然后我需要声明窗体的另一个字节数组:

00 aa 01 bb 02 cc
Run Code Online (Sandbox Code Playgroud)

其中aabbcc是const int内存中的24位地址(我精确地为一个非常特殊的平台编写代码,这解释了这一点),所以我写道:

const char my_other_array[] = {
    00, (my_array >> 16) & 0xFF, 01, (my_array >> 8) & 0xFF, 02, my_array & 0xFF
}
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

error: invalid operands to binary >>
error: initializer element is not constant
Run Code Online (Sandbox Code Playgroud)

我考虑过铸造my_array:

const char my_other_array[] = {
    00, (((const u32) my_array) >> 16) & 0xFF, 01, (((const u32) my_array) >> 8) & 0xFF, 02, ((const u32) …
Run Code Online (Sandbox Code Playgroud)

c arrays const

10
推荐指数
2
解决办法
5020
查看次数

标签 统计

arrays ×1

c ×1

const ×1