When a FITS header is scanned in memory or read from a file several basic values are retrieved from the header and stored in the FITSHead or FITSBasic structures. This structure may be accesed with the following macros:
#define ft_ncards(fits) ( fits->ncard )
#define ft_cardnth(fits, nth) ( ( nth <= fits->ncard ) \
? &fits->cards[nth-1] \
: NULL )
#define ft_last(fits) ft_cardnth(fits, fits->ncard)
#define ft_swapped() (*(short *)"001000" & 0x0001)
#define ft_seek(fits) ( fits->seek )
typedef struct FITSHead {
FITSCard cards;
FITSCard *index;
FITSCard last;
int acard;
int ncard;
int mem;
int seek;
int data;
FITSBasic basic;
FITSImage image;
FITSTable table;
} *FITSHead;
#define ft_simple(fits) ( fits->basic->simple )
#define ft_name(fits) ( fits->basic->name )
#define ft_bitpix(fits) ( fits->basic->bitpix )
#define ft_naxes(fits) ( fits->basic->naxes )
#define ft_naxis(fits, i) ( fits->basic->naxis[i-1])
#define ft_pcount(fits) ( fits->basic->pcount )
#define ft_gcount(fits) ( fits->basic->gcount )
#define ft_databytes(fits) ( fits->basic->databytes)
#define ft_databloks(fits) ( fits->basic->databloks)
typedef struct FITSBasic {
int simple;
char *name;
int bitpix;
int naxes;
int *naxis;
int gcount;
int pcount;
int databytes;
int databloks;
} *FITSBasic;