title: Got "does not name a type when using static variable in *.c file"
body: <p>I am compiling frmts/gtiff/libtiff/tif_dirinfo.c file from GDAL using android ndk and g++.
  The tiffFieldArray is defined as a static variable at beginning.</p>
  
  <pre><code>static TIFFFieldArray tiffFieldArray;
  </code></pre>
  
  <p>Then I use it in the same file:</p>
  
  <pre><code>tiffFieldArray = { tfiatImage, 0, TIFFArrayCount(tiffFields), tiffFields };
  </code></pre>
  
  <p>But got error:</p>
  
  <pre><code>../../frmts/gtiff/libtiff/tif_dirinfo.c:264:1: error: 'tiffFieldArray' does not name a type
  </code></pre>
  
  <p>Why?</p>
  
  <p>In tif_dir.h, the struct definition:</p>
  
  <pre><code>#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
  </code></pre>