如何在C中从静态变量声明常量变量?

如何在C中从静态变量声明常量变量?,c,arrays,C,Arrays,我想从这个静态变量中得到一个常量变量 #define video_mode_count 12 static freenect_frame_mode supported_video_modes[video_mode_count] = { // reserved, resolution, format, bytes, width, height, data_bits_per_pixel, padding_bits_per_pixel, framerate, is_valid {MAK

我想从这个静态变量中得到一个常量变量

#define video_mode_count 12
static freenect_frame_mode supported_video_modes[video_mode_count] = {
    // reserved, resolution, format, bytes, width, height, data_bits_per_pixel, padding_bits_per_pixel, framerate, is_valid
    {MAKE_RESERVED(FREENECT_RESOLUTION_HIGH,   FREENECT_VIDEO_RGB), FREENECT_RESOLUTION_HIGH, {FREENECT_VIDEO_RGB}, 1280*1024*3, 1280, 1024, 24, 0, 10, 1 },
    {MAKE_RESERVED(FREENECT_RESOLUTION_MEDIUM, FREENECT_VIDEO_RGB), FREENECT_RESOLUTION_MEDIUM, {FREENECT_VIDEO_RGB}, 640*480*3, 640,  480, 24, 0, 30, 1 },

    {MAKE_RESERVED(FREENECT_RESOLUTION_HIGH,   FREENECT_VIDEO_BAYER), FREENECT_RESOLUTION_HIGH, {FREENECT_VIDEO_BAYER}, 1280*1024, 1280, 1024, 8, 0, 10, 1 },
    {MAKE_RESERVED(FREENECT_RESOLUTION_MEDIUM, FREENECT_VIDEO_BAYER), FREENECT_RESOLUTION_MEDIUM, {FREENECT_VIDEO_BAYER}, 640*480, 640, 480, 8, 0, 30, 1 },

    {MAKE_RESERVED(FREENECT_RESOLUTION_HIGH,   FREENECT_VIDEO_IR_8BIT), FREENECT_RESOLUTION_HIGH, {FREENECT_VIDEO_IR_8BIT}, 1280*1024, 1280, 1024, 8, 0, 10, 1 },
    {MAKE_RESERVED(FREENECT_RESOLUTION_MEDIUM, FREENECT_VIDEO_IR_8BIT), FREENECT_RESOLUTION_MEDIUM, {FREENECT_VIDEO_IR_8BIT}, 640*488, 640, 488, 8, 0, 30, 1 },

    {MAKE_RESERVED(FREENECT_RESOLUTION_HIGH,   FREENECT_VIDEO_IR_10BIT), FREENECT_RESOLUTION_HIGH, {FREENECT_VIDEO_IR_10BIT}, 1280*1024*2, 1280, 1024, 10, 6, 10, 1 },
    {MAKE_RESERVED(FREENECT_RESOLUTION_MEDIUM, FREENECT_VIDEO_IR_10BIT), FREENECT_RESOLUTION_MEDIUM, {FREENECT_VIDEO_IR_10BIT}, 640*488*2, 640, 488, 10, 6, 30, 1 },

    {MAKE_RESERVED(FREENECT_RESOLUTION_HIGH,   FREENECT_VIDEO_IR_10BIT_PACKED), FREENECT_RESOLUTION_HIGH, {FREENECT_VIDEO_IR_10BIT_PACKED}, 1280*1024*10/8, 1280, 1024, 10, 0, 10, 1 },
    {MAKE_RESERVED(FREENECT_RESOLUTION_MEDIUM, FREENECT_VIDEO_IR_10BIT_PACKED), FREENECT_RESOLUTION_MEDIUM, {FREENECT_VIDEO_IR_10BIT_PACKED}, 640*488*10/8, 640, 488, 10, 0, 30, 1 },

    {MAKE_RESERVED(FREENECT_RESOLUTION_MEDIUM, FREENECT_VIDEO_YUV_RGB), FREENECT_RESOLUTION_MEDIUM, {FREENECT_VIDEO_YUV_RGB}, 640*480*3, 640, 480, 24, 0, 15, 1 },

    {MAKE_RESERVED(FREENECT_RESOLUTION_MEDIUM, FREENECT_VIDEO_YUV_RAW), FREENECT_RESOLUTION_MEDIUM, {FREENECT_VIDEO_YUV_RAW}, 640*480*2, 640, 480, 16, 0, 15, 1 },};
现在我需要写点东西

const FREENECT_VIDEO_RGB = [ An instance in the type of  freenect_frame_mode ]
如何以这种格式声明常量变量


原始代码来自:

我需要传递一个const var freenect_frame_模式到这个模式中,看看它是否返回-1:

int freenect\u set\u video\u模式(freenect\u device*dev,const freenect\u frame\u模式)
{
freenect_context*ctx=dev->parent;
如果(开发->视频运行){
FN_错误(“试图在流处于活动状态时设置视频模式\n”);
返回-1;
}
//验证传入的模式是否实际在支持的模式列表中
int=0;
int i;
对于(i=0;ivideo_format=fmt;
开发->视频分辨率=分辨率;
//现在我们已经更改了视频格式和分辨率,我们需要更新
//登记表。
freenect_fetch_reg_info(dev);
返回0;
}

我现在只是一直在使用这个功能


谢谢

如果您想获取数组的元素,可以使用标准语法
array[index]

const freenect_frame_mode FREENECT_VIDEO_RGB = supported_video_modes[5];
比如说


如果您想了解更多信息,需要显示更多代码,即这些符号的定义。

如果您想获取数组的元素,可以使用标准语法
array[index]

const freenect_frame_mode FREENECT_VIDEO_RGB = supported_video_modes[5];
比如说


如果您想了解更多信息,需要显示更多代码,即这些符号的定义。

如果您想获取数组的元素,可以使用标准语法
array[index]

const freenect_frame_mode FREENECT_VIDEO_RGB = supported_video_modes[5];
比如说


如果您想了解更多信息,需要显示更多代码,即这些符号的定义。

如果您想获取数组的元素,可以使用标准语法
array[index]

const freenect_frame_mode FREENECT_VIDEO_RGB = supported_video_modes[5];
比如说


如果需要更多信息,您需要显示更多代码,即这些符号的定义。

文章已重新编辑。我使用上面报告的代码:
src/input/Freenect.cc:88:27:error:“const Freenect_frame_mode Freenect_VIDEO_RGB”重新声明为不同类型的符号const Freenect_frame_mode Freenect_VIDEO_RGB=支持的_VIDEO_mode[5]好。我已经解决了这个问题。我在这里得到的错误是因为var FREENECT_VIDEO_RGB声明了两次。我重新命名了var名称,它可以工作了!谢谢你,克里斯·贝克!这篇文章被重新编辑。我使用上面报告的代码:
src/input/Freenect.cc:88:27:error:“const Freenect_frame_mode Freenect_VIDEO_RGB”重新声明为不同类型的符号const Freenect_frame_mode Freenect_VIDEO_RGB=支持的_VIDEO_mode[5]好。我已经解决了这个问题。我在这里得到的错误是因为var FREENECT_VIDEO_RGB声明了两次。我重新命名了var名称,它可以工作了!谢谢你,克里斯·贝克!这篇文章被重新编辑。我使用上面报告的代码:
src/input/Freenect.cc:88:27:error:“const Freenect_frame_mode Freenect_VIDEO_RGB”重新声明为不同类型的符号const Freenect_frame_mode Freenect_VIDEO_RGB=支持的_VIDEO_mode[5]好。我已经解决了这个问题。我在这里得到的错误是因为var FREENECT_VIDEO_RGB声明了两次。我重新命名了var名称,它可以工作了!谢谢你,克里斯·贝克!这篇文章被重新编辑。我使用上面报告的代码:
src/input/Freenect.cc:88:27:error:“const Freenect_frame_mode Freenect_VIDEO_RGB”重新声明为不同类型的符号const Freenect_frame_mode Freenect_VIDEO_RGB=支持的_VIDEO_mode[5]好。我已经解决了这个问题。我在这里得到的错误是因为var FREENECT_VIDEO_RGB声明了两次。我重新命名了var名称,它可以工作了!谢谢你,克里斯·贝克!常量变量绝对不是变量……)那么
const static…
??常量变量绝对不是变量…)那么
const static…
??常量变量绝对不是变量…)那么
const static…
??常量变量绝对不是变量…)那么
常量静态…
呢???