camera_metadata_tags.h 下的
enum{
    ANDROID_REQUEST = 0,
    ANDROID_LENS,
    ANDROID_LENS_INFO,
    ANDROID_SENSOR,
    ANDROID_SENSOR_INFO,
    ... ...
};camera_metadata_tag_info.c下的
const char *camera_metadata_section_names[ANDROID_SECTION_COUNT] = {
    [ANDROID_REQUEST]        = "android.request",
    [ANDROID_LENS]           = "android.lens",
    [ANDROID_LENS_INFO]      = "android.lens.info",
    [ANDROID_SENSOR]         = "android.sensor",
    [ANDROID_SENSOR_INFO]    = "android.sensor.info",
    ... ...
}
枚举成员加上方框弧,还有被赋值?? 难道是[]这个操作符被重载了??
有看过的,请不吝赐教啊,谢谢!

解决方案 »

  1.   

    4.2代码是从Google网站上下的。这两个文件里,都没有include 其他的头文件。各位大侠拜托了哈
      

  2.   

    就没人下过Android4.2代码??还是没人会这个??还是中国没人搞这个???
      

  3.   

    上传文件的功能,被公司禁了,我告诉大家文件的路径,帮我分析分析哈,多少年了,还真是孤陋寡闻了!!
    system/media/camera/src/camera_metadata_tag_info.c
      

  4.   

    /**
     * !! Do not reference this file directly !!
     *
     * It is logically a part of camera_metadata.c.  It is broken out for ease of
     * maintaining the tag info.
     *
     * Array assignments are done using specified-index syntax to keep things in
     * sync with camera_metadata_tags.h
     */
    这个声明前面的注释已经很清楚了,这只是一段参考代码而已。
    另外,看Android.mk里,也根本没有编译这个.c文件,所以,楼主多虑了。C语言里根本没有这种语法。
    LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES := \
    camera_metadata.cLOCAL_C_INCLUDES:= \
    system/media/camera/includeLOCAL_SHARED_LIBRARIES := \
    libcutilsLOCAL_MODULE := libcamera_metadata
    LOCAL_MODULE_TAGS := optionalLOCAL_CFLAGS += \
    -Wall \
    -fvisibility=hidden \
    include $(BUILD_SHARED_LIBRARY)
      

  5.   

    哦,似乎明白了,这些东东需要开发者自己去适配,他的类型是
    extern const char *camera_metadata_section_names
    在这儿只是个例子,谢谢楼上的这位仁兄哈。
      

  6.   

    另外,他在"camera_metadata.c" 746 行 有这句#include "camera_metadata_tag_info.c"看来他还是被引用了。
      

  7.   

    这个是基础知识了还有一点要注意, 关于下标的, 容易出错:// 下标正常使用
    int a[100] = {[10] = 10, [99] = 99, [5] = 2, [4] = 4, [3] = 3, [1] = 1,};
    // 结果是 {0,1,0,3,4,2,0,0.....} // 下标失效, 按顺序赋值滴 - -!
    int b[100] = {b[10] = 10, b[99] = 99, b[5] = 2, b[4] = 4, b[3] = 3, b[1] = 1,};
    // 结果是 {10,99,2,4,3,1,0......}