Zjednoduseni definice tabulky v C
Zdenek Janis
janis na alberon.cz
Pátek Říjen 5 16:02:06 CEST 2007
Dobry den,
delam si doplnek pro PG a zajimalo by, zda jde nejak
zjednosit/zprehlednit definici tabulky cmsProcTab, viz nize:
typedef struct {
const char **Typ;
const char **Method;
const char *Ext;
cmsCompress_t *Compress;
cmsDecompress_t *Decompress;
} cmsProc_t;
/* (pred)dekladace funkci */
static cmsCompress_t CompressGZ, CompressBZ;
static cmsDecompress_t DecompressGZ, DecompressBZ;
static const char *cmsTypGZ[] = {"application/x-gzip", NULL};
static const char *cmsMethodGZ[] = {"gzip", "gz", NULL};
static const char *cmsTypBZ[] = {"application/x-bzip", NULL};
static const char *cmsMethodBZ[] = {"bzip", "bz2", "bz", NULL};
/* Seznam podoprovanych compresnich metod */
static const cmsProc_t cmsProcTab[] = {
{cmsTypGZ, cmsMethodGZ, ".gz", CompressGZ, DecompressGZ},
{cmsTypBZ, cmsMethodBZ, ".bz2", CompressBZ, DecompressBZ},
{NULL, } /* ukonceni tabulky - musi byt na konci !!! */
};
A me by se libilo, kdyby sla nejak upravit posledni cast, aby vypadal
asi tak nasledovne:
vyhodit definice cmsTypGZ, cmsMethodGZ, cmsTypBZ, cmsMethodBZ
static const cmsProc_t cmsProcTab[] = {
{
{"application/x-gzip", NULL},
{"gzip", "gz", NULL},
".gz", CompressGZ, DecompressGZ},
{
{"application/x-bzip", NULL},
{"bzip", "bz2", "bz", NULL},
".bz2", CompressBZ, DecompressBZ},
{NULL, } /* ukonceni tabulky - musi byt na konci !!! */
};
Nicmene GCC mi to neohodnoti nejlepe, ale verim, ze na existuje nejaka
cesta.
Dekuji za pripadne namety a preji pekny den.
--
Zdenek Janis
Další informace o konferenci Linux