Ciao , scusatemi la domanda banale ma sto cercando ovunque non riesco a trovare nulla .
Cosa fa l'operazione if(!variabile) ?
vi riporto l'esempio dove ho avuto problemi guardando un codice:
Grazie !codice:if(!handle_ftp) return EXIT_SUCCESS;
Ciao , scusatemi la domanda banale ma sto cercando ovunque non riesco a trovare nulla .
Cosa fa l'operazione if(!variabile) ?
vi riporto l'esempio dove ho avuto problemi guardando un codice:
Grazie !codice:if(!handle_ftp) return EXIT_SUCCESS;
Logical Not
http://www.tutorialspoint.com/cprogr..._operators.htm
In questo caso, se handle_ftp vale 0 allora la if viene eseguita.
No MP tecnici (non rispondo nemmeno!), usa il forum.
Grazie mille !!
Quindi nel caso a handle_ftp (variabile HINTERNET) non fosse assegnata nessuna istruzione avrebbe valore 0, nel caso invece fosse stata inizializzata con delle istruzioni avrebbe valore 1 ?
Scusami se faccio confusione, è da poco che sto studiando la libreria <wininet> e le sue funzioni
Non si assegnano istruzioni ad una variabile. Non ha senso. Una variabile ha un valore, in quel caso, un valore numerico, probabilmente assegnato tramite una chiamata a una funzione.
No MP tecnici (non rispondo nemmeno!), usa il forum.
Dipende da quale funzione chiami nel tuo codice per assegnare il valore a quella variabile.
No MP tecnici (non rispondo nemmeno!), usa il forum.
Ok, riporto l esempio così è piu chiaro
condizione:
codice:if(!handle_ftp) return EXIT_SUCCESS
dichiarazione handle_ftp:
codice:HINTERNET handle_ftp; handle_ftp=internetConnect(handle_open , server , INTERNET_DEFAULT_FTP_PORT , username , password , INTERNET_SERVICE_FTP , 0 , 0);
In questo caso ritorna false (1) ?
Controlla la documentazione della funzione
InternetConnect
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
Nel paragrafo
Return Value
potrai leggere che
Returns a valid handle to the session if the connection is successful, or NULL otherwise.
Quindi se la funzione fallisce (e la connessione non è stata stabilita) restituisce il valore NULL (un valore eguale a zero).
In questo caso, la if viene eseguita. Il fatto che venga eseguita la
return EXIT_SUCCESS:
non è chiara dato che dovrebbe restituire un codice d'errore al chiamante.
No MP tecnici (non rispondo nemmeno!), usa il forum.
grazie mille molto chiaro !!
codice:if(!handle_ftp) // è la stessa cosa di if (handle_ftp==false);