Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <868qp8txwz.fsf@linuxsc.com>
Deutsch   English   Français   Italiano  
<868qp8txwz.fsf@linuxsc.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Tim Rentsch <tr.17687@z991.linuxsc.com>
Newsgroups: comp.lang.c
Subject: Re: Concatenated if and preprocessor
Date: Thu, 13 Mar 2025 14:37:16 -0700
Organization: A noiseless patient Spider
Lines: 48
Message-ID: <868qp8txwz.fsf@linuxsc.com>
References: <vquuhg$34o8d$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Date: Thu, 13 Mar 2025 22:37:18 +0100 (CET)
Injection-Info: dont-email.me; posting-host="72f99fc8fdb67b940ef68d9485a6ab68";
	logging-data="4080310"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/l0DAeSNt4eZdyydKw9M/w4gsnSG+YVog="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:drSgY7pApoWPxyvTQTXa5FozqWc=
	sha1:61zgFOLteaKgP/iLX6uGtv2o5e4=
Bytes: 2074

pozz <pozzugno@gmail.com> writes:

> Consider this code:
>
> if (cond1) {
> ...
> } else if (cond2) {
> ...
> } else if (cond3) {
> ...
> }
>
> I want to activate every single if with a macro preprocessor.  All the
> combinations are possible:  only the first, only the second, only the
> third, the first and second... and so on.
>
> What's the best method to have a clean code that is always compiled
> without errors?

    if ( ..bypass all further tests.. ) {
        // for a "skip all conditional segments" case (if needed)
        ...

 #if TEST_1
    } else if (cond1) {
        ...
 #endif

 #if TEST_2
    } else if (cond2) {
        ...
 #endif

 #if TEST_3
    } else if (cond3) {
        ...
 #endif

    } else {
        // for a "no conditional segment" ran case (if needed)
        ...
    }
    

Having said that, it's hard to imagine a scenario where doing
something like this is the best way to solve the higher level
problem.  It is almost certainly better to rethink the reasoning
that resulted in choosing this scheme, and find a way to avoid it.