2+2=5 in C…

Come primissimo e rapido contributo minimo a questo blog, mi aggancio a Errore! manco 2+2 sa fare per mostrarvi come lo farei in C; le prime 3 soluzioni viste su StackExchange mi sembrano insoddisfacenti.


#include <stdio.h>

#define a a=5,b

int main(void)
{
    int a = 2 + 2;
    printf("%d\n", a);
    return 0;
}

Sfrutto le macro, che secondo qualcuno andrebbero evitate il più possibile e sono pericolose: questo esempio mostra che effettivamente possono creare qualche problemino… Ma il C ci convive da sempre e io continuo a difenderle — ma sono anche tra quelli che non inorridiranno il giorno in cui avremo import <stdio.h> o qualcosa di simile.

Post scriptum

Per qualche misterioso caso c’era un erroruccio nella define… nessuno lo notò… Per fortuna su StackExchange non ho fatto lo stesso errore ;-D

Posta un commento o usa questo indirizzo per il trackback.

Commenti

  • Theodore  Il 30 settembre 2015 alle 21:55

    Io sono fra quelli che qualora avessimo un package system usato da un po’ tutti per il C si abituerà ad usare m4, m5 o gema 😀
    È una stupidata talvolta una chiamata ad una funzione che verrà chiamata una volta solo per pulire il programma o configurare dei valori fuor di main()

    • shintakezou  Il 30 settembre 2015 alle 22:03

      Non credo di aver capito esattamente… ma ci sono diverse critiche fattibili all’uso di un preprocessore macro, anche se un po’ specializzato come lo è cpp, che comunque nessuno vieterà di usare nemmeno se e quando `#include` scomparirà o verrà assimilata ad una direttiva di linguaggio. Nessuno ti vieta, del resto, di usare M4 (M5 e gema mi mancano…) già da adesso…

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

%d blogger hanno fatto clic su Mi Piace per questo: