On Mon, Apr 26, 2021 at 10:31 AM Derrick Stolee <stolee@xxxxxxxxx> wrote: > On 4/1/21 11:40 AM, Jeff Hostetler via GitGitGadget wrote: > > +#ifdef HAVE_FSMONITOR_DAEMON_BACKEND > > +#define FSMONITOR_DAEMON_IS_SUPPORTED 1 > > +#else > > +#define FSMONITOR_DAEMON_IS_SUPPORTED 0 > > +#endif > > + > > +int fsmonitor_ipc__is_supported(void) > > +{ > > + return FSMONITOR_DAEMON_IS_SUPPORTED; > > +} > > I don't see any other use of FSMONITOR_DAEMON_IS_SUPPORTED, > so I was thinking you could use the #ifdef/#else/#endif > construct within the implementation of this method instead > of creating a macro outside. But my suggestion might be an > anti-pattern, so feel free to ignore me. On this project, it is preferred to keep the #if / #else / #endif outside of functions since embedding them within functions often makes it difficult to follow how the code flows (and generally makes functions unnecessarily noisy). So, the way Jeff did this seems fine. An alternative would have been: #ifdef HAVE_FSMONITOR_DAEMON_BACKEND #define fsmonitor_ipc__is_supported() 1 #else #define fsmonitor_ipc__is_supported() 0 #endif which would still allow calling it as a function: if (fsmonitor_ipc__is_supported()) ... but it's subjective whether that's actually any cleaner or better.