Author: Stan Eisenstat
Subject: Re: Warnings with Macros
Date: Wednesday, 16 Sep 2020, 17:19:39
> My name is Mawuli Akpalu, and I am in your CPSC 323 class. I decided to > use your fiend.h header file because find the macros helpful, but I keep > getting warnings from gcc of the form: > > fiend.h:19:43: warning: too many arguments for format [-Wformat-extra-args] > 19 | #define WARN(format,...) fprintf (stderr, "fiend: " format "\n", > __VA_ARGS__) > | ^~~~~~~~~ > fiend.h:22:26: note: in expansion of macro M-bM-^@M-^XWARN' > 22 | #define DIE(format,...) WARN(format,__VA_ARGS__), exit > (EXIT_FAILURE) > | ^~~~ > fiend.c:181:9: note: in expansion of macro M-bM-^@M-^XDIE' > 181 | else DIE("missing argument to -maxdepth", empty); The error is in the last line, where there is one argument (empty) but the format does not require any. But trying to remove empty leads to a different error, since the DIE() macro must have at least two arguments. Try DIE("missing argument to -maxdepth%s", ""); instead. --Stan-PREV INDEX NEXT