Operatore sizeof C

di il
4 risposte

Operatore sizeof C

Salve a tutti, avrei una domanda da porvi. Sto lavorando sulla ricorsione e i file, utilizzando file binari (.dat). Avrei una domanda da porvi. Sto creando dei programmi basati sui numeri interi (quindi sto utilizzando l'operatore "sizeof(int)"). Ma per quanto riguarda invece i numeri interi, come dovrei cambiare questo operatore? Andrebbe bene scrivere "sizeof(char)"? E per i numeri con virgola? Andrebbe bene l'operatore "sizeof(float)"? Premetto che sto lavorando in C!

Rimango in attesa di una vostra risposta, grazie a tutti!

4 Risposte

  • Re: Operatore sizeof C

    La domanda non è affatto chiaro ma puoi scrivere sizeof(double) e tutto quello che hai detto ...
  • Re: Operatore sizeof C

    La funzione
    sizeof()
    ritorna la dimensione in byte di qualunque tipo di dato. Se devi sapere quanti byte leggere da un file binario, devi ovviamente sapere quanto occupa il tipo di dato che andrai a leggere.
    Se ad esempio usi la funzione
    ssize_t read(int fildes, void *buf, size_t nbytes);
    per leggere, per calcolare nbytes dovrai usare la sizeof sul tipo di dato che andrai a leggere, es:
    bytes_read = read(0, &val_double, sizeof(double));
  • Re: Operatore sizeof C

    Ma anche no, soprattutto nel caso dei caratteri, di cui non è affatto banale stabilire quanto occupino
  • Re: Operatore sizeof C

    +m2+ ha scritto:


    Ma anche no, soprattutto nel caso dei caratteri, di cui non è affatto banale stabilire quanto occupino
    Il tipo char occupa di solito 1 byte. Se parliamo di caratteri Unicode, la faccenda è diversa.
Devi accedere o registrarti per scrivere nel forum
4 risposte