Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    6

    [C]Condizione IF "scosciuta"

    Ciao di nuovo, sto gurdando un programa per un micro e sono incappato in questo if:

    if(!leadingflag)

    cosa vuol dire il "!" messo in quel modo Non riesco a trovarne notizia da nessuna parte

    Grazie

    p.s. Dimenticavo che il forum comprende tutti i linguaggi diprogrammazione, quello che stousando è "C"

  2. #2
    ! è l'operatore booleano NOT. Il significato di quell'istruzione è "se leadingflag è uguale da zero"...
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [C]Condizione IF "scosciuta"

    Originariamente inviato da Vryce
    if(!leadingflag)
    Tradotto: "se leadingflag è uguale a zero"
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    6
    Ottimo, nega il != che è implicito nn essendo dichiarato, grazie mille, molto gentili

    (Non capisco xkè nn si scrivechiaramente un bell' == o !=...cmq....)

    Grazie ancora!

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da Vryce
    Ottimo, nega il != che è implicito nn essendo dichiarato, grazie mille, molto gentili

    (Non capisco xkè nn si scrivechiaramente un bell' == o !=...cmq....)

    Grazie ancora!
    Se noti, != è proprio la negazione ( ! ) dell'uguaglianza ( == ).
    Ad ogni modo, il motivo risale a origini "storiche".

    Nel linguaggio C (e non solo) il valore 0 è sempre considerato falso. Qualsiasi altro valore è considerato, ovviamente, come vero.

    Scrivere, quindi:
    codice:
    if (var == 0)
    
    oppure
    
    if ( !var )
    E' la stessa identica cosa. Nel primo caso effettuo un confronto fra il valore di "var" e lo 0 (che, come già detto è FALSO, quindi lo posso leggere come "se var è falsa"), mentre nel secondo vado a negare il valore di "var", che se era falsa rende vera la condizione del if.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Originariamente inviato da Vryce
    Ottimo, nega il != che è implicito nn essendo dichiarato, grazie mille, molto gentili
    Veramente le cose sono un po' diverse: l'if esegue il blocco che lo segue se tra parentesi viene specificato un numero diverso da zero; ora, il ! esegue il NOT logico sul valore che lo segue, ossia se il valore che lo segue è uguale a 0 restituisce 1 e viceversa; in questa maniera se leadingflag è uguale a zero viene restituito 1 che fa eseguire l'if (e viceversa).
    (Non capisco xkè nn si scrivechiaramente un bell' == o !=...cmq....)
    Perché è più bello, più efficiente e più figo.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.