Without the typedefs there can be trouble depending on #include order.
#include "rdft.h"
-struct DCTContext {
+typedef struct DCTContext {
int nbits;
int inverse;
RDFTContext rdft;
FFTSample *csc2;
void (*dct_calc)(struct DCTContext *s, FFTSample *data);
void (*dct32)(FFTSample *out, const FFTSample *in);
-};
+} DCTContext;
/**
* Set up DCT.
extern SINTABLE(32768);
extern SINTABLE(65536);
-struct RDFTContext {
+typedef struct RDFTContext {
int nbits;
int inverse;
int sign_convention;
SINTABLE_CONST FFTSample *tsin;
FFTContext fft;
void (*rdft_calc)(struct RDFTContext *s, FFTSample *z);
-};
+} RDFTContext;
/**
* Set up a real FFT.