Buongiorno corsisti,
dubbio riguardo al paragrafo 1.5.1 del K&R.

Il motivo per cui il tipo scelto per la variabile c sia "int" mi è chiaro.
Ho anche verificato le relative dimensioni in byte col seguente programmino
(se ci sono castronerie segnalatemele):

-----
#include <stdio.h>

int main()
{
    printf("EOF\tchar\tint\n");
    printf("%d\t%d\t%d\n", sizeof(EOF), sizeof(char), sizeof(int));
    return 0;
}
-----


Il cui output è:

-----
EOF    char    int
4    1    4
-----


Domanda: perché usando il tipo "char" al posto di "int" tutto mi funziona
regolarmente?

-----
#include <stdio.h>

int main()
{
    char c;

    c = getchar();
    while (c != EOF)
    {
        putchar(c);
        c = getchar();
    }

    return 0;
}
-----


Mi sarei aspettato un crash, o qualcosa di molto brutto...

Grazie!

Carlo
_______________________________________________
BrigX Linux Users Group
ML@brigx.it
http://brigx.it/mailman/listinfo/ml_brigx.it

Proponi la tua idea per una delle nostre serate: http://brigx.it/feedback

Rispondere a