Problema "overflow aritmetico"

di il
3 risposte

Problema "overflow aritmetico"

" I valori massimi e minimi specifici della piattaforma che si possono memorizzare in una variabile int sono rappresentati rispettivamente dalle costanti INT_MAX e INT_MIN , che sono definite nel file di intestazione <limits.h> . Potete vedere i valori relativi alla vostra piattaforma per queste costanti aprendo il file di intestazione <limits.h> in un editor di testo.
Viene considerata una buona pratica assicurarsi che, prima di eseguire calcoli aritmetici, questi non daranno luogo ad overflow. Il codice per fare questa verifica è mostrato sul sito web del CERT http://www.securecoding.cert.or Cercate proprio la linea guida "INT32-C" . Il codice utilizza gli operatori && (AND logico) e || (OR logico),
Nel codice sviluppato a livello industriale dovreste eseguire dei controlli come questi per tutti i calcoli."

Questo è quello scritto sul mio libro ma non riesco a:
1) capire dov'è il file di intestazione <limits.h> che devo aprire in un editor di testo;
2) Qual'è il giusto codice sul sito del CERT....

Grazie....
Ciao.

3 Risposte

  • Re: Problema "overflow aritmetico"

    1) Dipende dalla tua toolchain/SDK: dove sono installate le tue librerie? è li da qualche parte nella cartella include ipotizzo
    2) Con una rapida ricerca sul sito.....
  • Re: Problema "overflow aritmetico"

    LPs ha scritto:


    1) Dipende dalla tua toolchain/SDK: dove sono installate le tue librerie? è li da qualche parte nella cartella include ipotizzo
    2) Con una rapida ricerca sul sito.....
    Ok ho trovato il file di intestazione <limits.h> in C/program file/android/android_sdk/etc...

    MA NON SO LEGGERLO!! :-ooo cioè: a me interessa sapere come faccio a sapere l'overflow aritmetico del mio computer... dove la trovo l'informazione???

    Nemmeno la pagina web del CERT la so leggere...

    vabbè; grazie...
    Ciao!!
  • Re: Problema "overflow aritmetico"

    JackieJack1207 ha scritto:


    LPs ha scritto:


    1) Dipende dalla tua toolchain/SDK: dove sono installate le tue librerie? è li da qualche parte nella cartella include ipotizzo
    2) Con una rapida ricerca sul sito.....
    Ok ho trovato il file di intestazione <limits.h> in C/program file/android/android_sdk/etc...

    MA NON SO LEGGERLO!! :-ooo cioè: a me interessa sapere come faccio a sapere l'overflow aritmetico del mio computer... dove la trovo l'informazione???

    Nemmeno la pagina web del CERT la so leggere...

    vabbè; grazie...
    Ciao!!
    Per quanto riguarda il file limits.h è un po' complesso, ma il concetto base è che, basandosi su una serie di define di altri files della SDK della tua architettura, le define tipo UINT_MAX sono impostate al valore corretto.

    Se sei su un macchina che esprime gli int a 16 bit avrai UINT_MAX = 65535, su una macchina che li esprime a 32 bit varrà invece 4294967295
Devi accedere o registrarti per scrivere nel forum
3 risposte