Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 得到;在*.c文件中使用静态变量时不命名类型;_C++_Android Ndk - Fatal编程技术网

C++ 得到;在*.c文件中使用静态变量时不命名类型;

C++ 得到;在*.c文件中使用静态变量时不命名类型;,c++,android-ndk,C++,Android Ndk,我正在使用android ndk和g++从GDAL编译frmts/gtiff/libtiff/tif_dirinfo.c文件。 tiffFieldArray在开始时定义为静态变量 static TIFFFieldArray tiffFieldArray; 然后我在同一个文件中使用它: tiffFieldArray = { tfiatImage, 0, TIFFArrayCount(tiffFields), tiffFields }; 但有一个错误: ../../frmts/gtiff/lib

我正在使用android ndk和g++从GDAL编译frmts/gtiff/libtiff/tif_dirinfo.c文件。 tiffFieldArray在开始时定义为静态变量

static TIFFFieldArray tiffFieldArray;
然后我在同一个文件中使用它:

tiffFieldArray = { tfiatImage, 0, TIFFArrayCount(tiffFields), tiffFields };
但有一个错误:

../../frmts/gtiff/libtiff/tif_dirinfo.c:264:1: error: 'tiffFieldArray' does not name a type
为什么?

在tif_dir.h中,结构定义:

#if defined(__cplusplus)
extern "C" {
#endif

...

struct _TIFFFieldArray {
        TIFFFieldArrayType type;    /* array type, will be used to determine if IFD is image and such */
        uint32 allocated_size;      /* 0 if array is constant, other if modified by future definition extension support */
        uint32 count;               /* number of elements in fields array */
        TIFFField* fields;          /* actual field info */
};
...

#if defined(__cplusplus)
}
#endif

不能从初始值设定项列表中分配变量:

tiffFieldArray = { tfiatImage, 0, TIFFArrayCount(tiffFields), tiffFields };
此语法仅适用于变量定义,不适用于赋值。将该行替换为:

    tiffFieldArray[0] =  tfiatImage;
    tiffFieldArray[1] =  0;
    tiffFieldArray[2] =  TIFFArrayCount(tiffFields);
    tiffFieldArray[3] =  tiffFields;
编辑(在问题中添加mor信息后)

TiffieldArray
有一个误导性的名称,因为它是一个结构,而不是数组。无论如何,我之前发布的解决方案在这种情况下无法工作。试着写:

    tiffFieldArray.type =  tfiatImage;
    tiffFieldArray.allocated_size =  0;
    tiffFieldArray.count =  TIFFArrayCount(tiffFields);
    tiffFieldArray.fields =  tiffFields;

在同一文件中还是在同一范围内?哪一行是第264行?您是否包含必要的文件或tiffFieldArray?@Zaibis在同一文件中file@LaszloPapptiffFieldArray={TfitImage,0,TIFFArrayCount(tiffFields),tiffFields};在26号line@DeanChen:我是说TiffieldArray。声明在哪里?仍然有错误。我在问这个问题之前就试过了/frmts/gtiff/libtiff/tif_dirinfo.c:264:1:错误:“TiffieldArray”未命名类型../。/frmts/gtiff/libtiff/tif_dirinfo.c:265:1:错误:“TiffieldArray”未命名类型../。/frmts/gtiff/libtiff/tif_dirinfo.c:266:1:错误:“TiffieldArray”未命名类型../。/frmts/gtiff/libtiff/tif_dirinfo.c:267:1:错误:“TiffieldArray”未命名类型命名类型