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;