I am working on cleaning up the warnings the compiler has been throwing at me since day one...
in db.c, i get the following error
gcc-3.4 -c -Wall -g3 db.c
db.c: In function `do_dump':
db.c:3393: warning: int format, different type arg (arg 4)
db.c:3408: warning: int format, different type arg (arg 4)
db.c:3408: warning: int format, different type arg (arg 6)
db.c:3415: warning: int format, different type arg (arg 4)
db.c:3415: warning: int format, different type arg (arg 6)
db.c:3424: warning: int format, different type arg (arg 4)
db.c:3424: warning: int format, different type arg (arg 6)
db.c:3435: warning: int format, different type arg (arg 4)
db.c:3449: warning: int format, different type arg (arg 4)
db.c:3449: warning: int format, different type arg (arg 6)
db.c:3456: warning: int format, different type arg (arg 4)
db.c:3456: warning: int format, different type arg (arg 6)
db.c:3460: warning: int format, different type arg (arg 4)
db.c:3464: warning: int format, different type arg (arg 4)
the do_dump function looks like this
--line below is 3368
void do_dump( CHAR_DATA *ch, char *argument )
{
int count,count2,num_pcs,aff_count;
CHAR_DATA *fch;
MOB_INDEX_DATA *pMobIndex;
PC_DATA *pc;
OBJ_DATA *obj;
OBJ_INDEX_DATA *pObjIndex;
ROOM_INDEX_DATA *room;
EXIT_DATA *exit;
DESCRIPTOR_DATA *d;
AFFECT_DATA *af;
FILE *fp;
int vnum,nMatch = 0;
/* open file */
fclose(fpReserve);
fp = fopen("mem.dmp","w");
/* report use of data structures */
num_pcs = 0;
aff_count = 0;
/* mobile prototypes */
fprintf(fp,"MobProt %4d (%8d bytes)\n", top_mob_index, top_mob_index * (sizeof(*pMobIndex)));
/* mobs */
count = 0; count2 = 0;
for (fch = char_list; fch != NULL; fch = fch->next)
{
count++;
if (fch->pcdata != NULL)
num_pcs++;
for (af = fch->affected; af != NULL; af = af->next)
aff_count++;
}
for (fch = char_free; fch != NULL; fch = fch->next)
count2++;
fprintf(fp,"Mobs %4d (%8d bytes), %2d free (%d bytes)\n", count, count * (sizeof(*fch)), count2, count2 * (sizeof(*fch)));
/* pcdata */
count = 0;
for (pc = pcdata_free; pc != NULL; pc = pc->next)
count++;
fprintf(fp,"Pcdata %4d (%8d bytes), %2d free (%d bytes)\n", num_pcs, num_pcs * (sizeof(*pc)), count, count * (sizeof(*pc)));
/* descriptors */
count = 0; count2 = 0;
for (d = descriptor_list; d != NULL; d = d->next)
count++;
for (d= descriptor_free; d != NULL; d = d->next)
count2++;
fprintf(fp, "Descs %4d (%8d bytes), %2d free (%d bytes)\n", count, count * (sizeof(*d)), count2, count2 * (sizeof(*d)));
/* object prototypes */
for ( vnum = 0; nMatch < top_obj_index; vnum++ )
if ( ( pObjIndex = get_obj_index( vnum ) ) != NULL )
{
for (af = pObjIndex->affected; af != NULL; af = af->next)
aff_count++;
nMatch++;
}
fprintf(fp,"ObjProt %4d (%8d bytes)\n", top_obj_index, top_obj_index * (sizeof(*pObjIndex)));
/* objects */
count = 0; count2 = 0;
for (obj = object_list; obj != NULL; obj = obj->next)
{
count++;
for (af = obj->affected; af != NULL; af = af->next)
aff_count++;
}
for (obj = obj_free; obj != NULL; obj = obj->next)
count2++;
fprintf(fp,"Objs %4d (%8d bytes), %2d free (%d bytes)\n", count, count * (sizeof(*obj)), count2, count2 * (sizeof(*obj)));
/* affects */
count = 0;
for (af = affect_free; af != NULL; af = af->next)
count++;
fprintf(fp,"Affects %4d (%8d bytes), %2d free (%d bytes)\n", aff_count, aff_count * (sizeof(*af)) ,count, count * (sizeof(*af)));
/* rooms */
fprintf(fp,"Rooms %4d (%8d bytes)\n",
top_room, top_room * (sizeof(*room)));
/* exits */
fprintf(fp,"Exits %4d (%8d bytes)\n",
top_exit, top_exit * (sizeof(*exit)));
fclose(fp);
/* start printing out mobile data */
fp = fopen("mob.dmp","w");
fprintf(fp,"\nMobile Analysis\n");
fprintf(fp, "---------------\n");
nMatch = 0;
for (vnum = 0; nMatch < top_mob_index; vnum++)
if ((pMobIndex = get_mob_index(vnum)) != NULL)
{
nMatch++;
fprintf(fp,"#%-4d %3d active %3d killed %s\n",
pMobIndex->vnum,pMobIndex->count,
pMobIndex->killed,pMobIndex->short_descr);
}
fclose(fp);
/* start printing out object data */
fp = fopen("obj.dmp","w");
fprintf(fp,"\nObject Analysis\n");
fprintf(fp, "---------------\n");
nMatch = 0;
for (vnum = 0; nMatch < top_obj_index; vnum++)
if ((pObjIndex = get_obj_index(vnum)) != NULL)
{
nMatch++;
fprintf(fp,"#%-4d %3d active %3d reset %s\n",
pObjIndex->vnum,pObjIndex->count,
pObjIndex->reset_num,pObjIndex->short_descr);
}
/* close file */
fclose(fp);
fpReserve = fopen( NULL_FILE, "r" );
}
--line above is 3502
For example.
db.c:3393: warning: int format, different type arg (arg 4)
correlates with
fprintf(fp,"MobProt %4d (%8d bytes)\n", top_mob_index, top_mob_index * (sizeof(*pMobIndex)));
This is just a compiler warning, and the mud seems to work, but i cannot figure out how to resolve the warning.
Any suggestions? thanks! |