• Vuoi Pubblicare un Articolo | Contattaci
Tech News, Magazine & Review WordPress Theme 2017
  • Home
  • PC & MOBILE
    • All
    • ANDROID
    • IPHONE E IPAD
    • LINUX
    • MAC
    • WINDOWS
    22 Things to do After Installing Ubuntu 22.04 Jammy Jellyfish

    22 Things to do After Installing Ubuntu 22.04 Jammy Jellyfish

    Come utilizzare il comando cp in Linux

    Come utilizzare il comando cp in Linux

    How to check network interface status in CentOS8

    How to check network interface status in CentOS8

    Collisione: app Linux per verificare l'integrità dei file utilizzando gli hash

    Collisione: app Linux per verificare l’integrità dei file utilizzando gli hash

    Metadata Cleaner: Remove Your Traces Within a File

    Metadata Cleaner: Remove Your Traces Within a File

    Create Contact Form Using HTML and PHP

    Create Contact Form Using HTML and PHP

    Piwigo: An Open-Source Google Photos Alternative

    Piwigo: An Open-Source Google Photos Alternative

    10 Best Webcams for Ubuntu in 2022

    10 Best Webcams for Ubuntu in 2022

    Make Applications Start in the Center of Screen in Ubuntu - It's FOSS

    Make Applications Start in the Center of Screen in Ubuntu – It’s FOSS

  • INTERNET
    • All
    • COMUNICAZIONI
    • FACEBOOK
    • SICUREZZA
    • STRUMENTI
    Array

    Array

    Come limitare chi può contattarti su Instagram

    Come limitare chi può contattarti su Instagram

    I federali scoprono un "coltellino svizzero" per l'hacking di sistemi industriali

    I federali scoprono un “coltellino svizzero” per l’hacking di sistemi industriali

    Come l'invasione russa ha innescato un giro di vite degli Stati Uniti sui suoi hacker

    Come l’invasione russa ha innescato un giro di vite degli Stati Uniti sui suoi hacker

    Blockchains Have a ‘Bridge’ Problem, and Hackers Know It

    Blockchains Have a ‘Bridge’ Problem, and Hackers Know It

    Forcing WhatsApp and iMessage to Work Together Is Doomed to Fail

    Forcing WhatsApp and iMessage to Work Together Is Doomed to Fail

    A Mysterious Satellite Hack Has Victims Far Beyond Ukraine

    A Mysterious Satellite Hack Has Victims Far Beyond Ukraine

    The TSA’s First Crack at Protecting Pipelines From Hackers Falls Short

    The TSA’s First Crack at Protecting Pipelines From Hackers Falls Short

    Russia Wants to Label Meta an ‘Extremist Organization’

    Russia Wants to Label Meta an ‘Extremist Organization’

  • LIFESTYLE
    • All
    • DIVERTIMENTO
    • NOTIZIE
    • PRODUTTIVITÀ
    Array

    Array

    Array

    Array

    Array

    Array

    9 migliori cuscini per cullare la tua zucca per un'ottima notte di sonno

    9 migliori cuscini per cullare la tua zucca per un’ottima notte di sonno

    5 consigli su come aiutare i bambini con bisogni speciali a prosperare

    5 consigli su come aiutare i bambini con bisogni speciali a prosperare

    La settimana lavorativa di 4 giorni aumenta la tua produttività per un migliore equilibrio?

    La settimana lavorativa di 4 giorni aumenta la tua produttività per un migliore equilibrio?

    Come trovare un lavoro in linea con i tuoi valori fondamentali

    Come trovare un lavoro in linea con i tuoi valori fondamentali

    5 strategie per far crescere il tuo business continuamente

    5 strategie per far crescere il tuo business continuamente

    Diventare un Life Coach: come trasformo l'esperienza di vita in coaching

    Diventare un Life Coach: come trasformo l’esperienza di vita in coaching

No Result
View All Result
  • Home
  • PC & MOBILE
    • All
    • ANDROID
    • IPHONE E IPAD
    • LINUX
    • MAC
    • WINDOWS
    22 Things to do After Installing Ubuntu 22.04 Jammy Jellyfish

    22 Things to do After Installing Ubuntu 22.04 Jammy Jellyfish

    Come utilizzare il comando cp in Linux

    Come utilizzare il comando cp in Linux

    How to check network interface status in CentOS8

    How to check network interface status in CentOS8

    Collisione: app Linux per verificare l'integrità dei file utilizzando gli hash

    Collisione: app Linux per verificare l’integrità dei file utilizzando gli hash

    Metadata Cleaner: Remove Your Traces Within a File

    Metadata Cleaner: Remove Your Traces Within a File

    Create Contact Form Using HTML and PHP

    Create Contact Form Using HTML and PHP

    Piwigo: An Open-Source Google Photos Alternative

    Piwigo: An Open-Source Google Photos Alternative

    10 Best Webcams for Ubuntu in 2022

    10 Best Webcams for Ubuntu in 2022

    Make Applications Start in the Center of Screen in Ubuntu - It's FOSS

    Make Applications Start in the Center of Screen in Ubuntu – It’s FOSS

  • INTERNET
    • All
    • COMUNICAZIONI
    • FACEBOOK
    • SICUREZZA
    • STRUMENTI
    Array

    Array

    Come limitare chi può contattarti su Instagram

    Come limitare chi può contattarti su Instagram

    I federali scoprono un "coltellino svizzero" per l'hacking di sistemi industriali

    I federali scoprono un “coltellino svizzero” per l’hacking di sistemi industriali

    Come l'invasione russa ha innescato un giro di vite degli Stati Uniti sui suoi hacker

    Come l’invasione russa ha innescato un giro di vite degli Stati Uniti sui suoi hacker

    Blockchains Have a ‘Bridge’ Problem, and Hackers Know It

    Blockchains Have a ‘Bridge’ Problem, and Hackers Know It

    Forcing WhatsApp and iMessage to Work Together Is Doomed to Fail

    Forcing WhatsApp and iMessage to Work Together Is Doomed to Fail

    A Mysterious Satellite Hack Has Victims Far Beyond Ukraine

    A Mysterious Satellite Hack Has Victims Far Beyond Ukraine

    The TSA’s First Crack at Protecting Pipelines From Hackers Falls Short

    The TSA’s First Crack at Protecting Pipelines From Hackers Falls Short

    Russia Wants to Label Meta an ‘Extremist Organization’

    Russia Wants to Label Meta an ‘Extremist Organization’

  • LIFESTYLE
    • All
    • DIVERTIMENTO
    • NOTIZIE
    • PRODUTTIVITÀ
    Array

    Array

    Array

    Array

    Array

    Array

    9 migliori cuscini per cullare la tua zucca per un'ottima notte di sonno

    9 migliori cuscini per cullare la tua zucca per un’ottima notte di sonno

    5 consigli su come aiutare i bambini con bisogni speciali a prosperare

    5 consigli su come aiutare i bambini con bisogni speciali a prosperare

    La settimana lavorativa di 4 giorni aumenta la tua produttività per un migliore equilibrio?

    La settimana lavorativa di 4 giorni aumenta la tua produttività per un migliore equilibrio?

    Come trovare un lavoro in linea con i tuoi valori fondamentali

    Come trovare un lavoro in linea con i tuoi valori fondamentali

    5 strategie per far crescere il tuo business continuamente

    5 strategie per far crescere il tuo business continuamente

    Diventare un Life Coach: come trasformo l'esperienza di vita in coaching

    Diventare un Life Coach: come trasformo l’esperienza di vita in coaching

No Result
View All Result
Soluzioni CRM
No Result
View All Result

Protezioni di intestazione C++

by Staff
29 Dicembre 2021
Protezioni di intestazione C++
Share on FacebookShare on Twitter


Una protezione dell’intestazione in C++ è un componente che si rivela il tuo salvatore ogni volta che tenti di commettere un errore mentre scrivi il tuo codice definendo una funzione più di una volta con lo stesso nome. Ogni programmatore deve sapere che non è mai considerata una buona pratica includere le definizioni delle funzioni nei file di intestazione. Tuttavia, a volte, è necessario farlo. In tal caso, devi sapere come utilizzare correttamente le protezioni dell’intestazione in C++. Pertanto, questo articolo discute la necessità di utilizzare le protezioni dell’intestazione in C++, seguito da alcuni esempi per insegnarti il ​​loro utilizzo sul sistema Ubuntu 20.04.

Perché è necessario utilizzare le protezioni dell’intestazione in C++?

Indice Articolo

  • Perché è necessario utilizzare le protezioni dell’intestazione in C++?
  • Esempio n. 1: evidenziare la necessità delle protezioni dell’intestazione in C++
  • Esempio n. 2: utilizzo delle protezioni dell’intestazione in C++
  • Conclusione:

Durante la scrittura del codice, definisci da solo determinati file di intestazione, a seconda della funzionalità richiesta. Dopo aver creato questi file di intestazione, puoi includerli tutti nel tuo file .cpp che contiene il tuo codice effettivo. Tuttavia, a volte questi file di intestazione dipendono l’uno dall’altro. Quindi, devi includere un file di intestazione in un altro. In tal caso, quando si includono entrambi questi file di intestazione nel file .cpp, le stesse funzioni di un file di intestazione potrebbero essere definite due volte. Ciò porta alla generazione di un errore in fase di compilazione poiché C++ proibisce rigorosamente la definizione della stessa funzione due volte all’interno dello stesso codice. Pertanto, utilizziamo le protezioni dell’intestazione per proteggere i file di intestazione da malfunzionamenti per risolvere questo problema di dipendenza.

Queste protezioni dell’intestazione possono essere implementate utilizzando le quattro direttive del preprocessore: #ifndef, #definire, #ifdef, e #finisci se. Ad esempio, ogni volta che si racchiude un pezzo di codice all’interno del “#ifndef” direttiva, il compilatore verifica sempre se il codice seguente è stato definito in precedenza o meno. In caso negativo, le dichiarazioni successive al “#definire” vengono eseguite. In caso contrario, queste dichiarazioni vengono semplicemente ignorate. Questo, a sua volta, garantisce che il programma venga sempre compilato correttamente e che le stesse funzioni non siano definite più di una volta all’interno dello stesso codice. Il “#ifdef” La direttiva funziona al contrario. Sarai in grado di capire tutto questo in un modo migliore dopo aver esaminato i seguenti due esempi.

Esempio n. 1: evidenziare la necessità delle protezioni dell’intestazione in C++

Per evidenziare l’importanza delle protezioni dell’intestazione in C++, dovrai esaminare questo esempio. In questo caso, creeremo due file di intestazione e un file .cpp. Includeremo anche il primo file di intestazione nel secondo file di intestazione. Dopodiché, includeremo entrambi questi file di intestazione nel nostro file .cpp. Qui, vorremmo affermare che ogni volta che un programma C++ incontra una definizione duplicata di qualsiasi funzione, genera sempre un errore in fase di compilazione, come “il tuo codice non verrà compilato finché non correggi quell’errore”. Il nostro primo file di intestazione è mostrato nell’immagine seguente:

Il nome del nostro primo file di intestazione è “decimal.h”, che si riferisce al sistema di numeri decimali che contiene numeri da 0 a 9, cioè un totale di dieci numeri. In questo file di intestazione, abbiamo incluso la libreria “iostream” e il nostro spazio dei nomi “std”. Questo è seguito da una funzione denominata “getTotal ()”, destinato a restituire il numero totale dei numeri decimali presenti nel sistema di numerazione decimale.

Il nostro secondo file di intestazione è mostrato nell’immagine seguente:

Il nome del nostro secondo file di intestazione è “hex.h”, che si riferisce al sistema numerico esadecimale. Questo file contiene numeri da 0 a 9 e caratteri da A a F, per un totale di 16 numeri. Poiché il sistema di numeri decimali è anche una piccola parte del sistema di numeri esadecimali, abbiamo semplicemente incluso il nostro primo file di intestazione nel nostro secondo file di intestazione.

Quindi, il nostro file .cpp viene mostrato nell’immagine qui sotto:

Il nome del nostro file .cpp è “main.cpp” poiché conterrà principalmente la nostra funzione di driver. Innanzitutto, abbiamo incluso i due file di intestazione che abbiamo creato sopra e poi la libreria “iostream”. Dopodiché, volevamo semplicemente stampare un messaggio sul terminale all’interno del nostro “principale()” funzione per notificare all’utente che la compilazione del codice è avvenuta con successo. Questo codice C++ ti sembrerà normale. Tuttavia, sarai in grado di scoprire gli errori in esso contenuti una volta eseguito.

Quando abbiamo compilato ed eseguito il nostro file .cpp, sul nostro terminale è stato generato l’errore mostrato nell’immagine seguente:

Parleremo brevemente di questo errore ora. In parole semplici, questo messaggio di errore dice che la funzione “getTotal ()” è stato definito due volte all’interno del nostro codice. Ora, potresti dubitare di come ciò sia avvenuto poiché abbiamo definito questa funzione solo una volta. Bene, abbiamo incluso il file di intestazione “decimal.h” nel nostro file di intestazione “hex.h”. Quindi, quando abbiamo avuto entrambi questi file nel nostro file “main.cpp”, la stessa funzione è stata definita due volte a causa dell’inclusione di un file di intestazione in un altro. Poiché la ridefinizione della stessa funzione non è severamente consentita in C++, non è stato possibile compilare correttamente il nostro programma. Ciò richiede la necessità di utilizzare le protezioni dell’intestazione in C++.

Esempio n. 2: utilizzo delle protezioni dell’intestazione in C++

Questo esempio è solo una leggera modifica del nostro primo esempio con header guard in C++. Il nostro file di intestazione “decimal.h” modificato è presentato nell’immagine seguente:

In questo file di intestazione modificato, abbiamo usato il “ifndef DECIMAL_H” direttiva all’inizio, seguita dalla “definire DECIMAL_H” direttiva. “DECIMAL_H” si riferisce al nome del nostro file di intestazione “decimal.h”. Quindi, abbiamo il nostro codice normale così com’è. Infine, abbiamo chiuso il nostro programma con il “finisci se” direttiva.

Allo stesso modo, abbiamo modificato il nostro secondo file di intestazione con le stesse direttive, come mostrato nell’immagine seguente:

Tuttavia, il nostro file “main.cpp” è rimasto lo stesso poiché non è necessario modificarlo in quanto tale. Ora, quando abbiamo provato a compilare il nostro file .cpp, non ha generato alcun messaggio di errore, o in altre parole, è stato compilato con successo, come puoi vedere dall’immagine mostrata sotto:

Dopo aver compilato questo programma, lo abbiamo eseguito. Quindi, il messaggio che volevamo visualizzare sul terminale tramite la nostra funzione “main()” è stato visualizzato sul terminale, come mostrato nell’immagine seguente:

Questa volta, il nostro programma è stato eseguito con successo nonostante abbia incluso entrambi i file di intestazione nel nostro file “main.cpp” esclusivamente a causa dell’utilizzo delle protezioni di intestazione in C++ ovunque richiesto.

Conclusione:

In questa guida, volevamo discutere le protezioni dell’intestazione in C++ in Ubuntu 20.04. Inizialmente, abbiamo spiegato cosa sono le guardie di intestazione sottolineando la loro necessità in C++. Quindi, abbiamo spiegato a fondo due diversi esempi, come evidenziare la necessità di protezioni per le intestazioni e spiegare come usarle. Una volta compresi bene questi esempi, ti renderai presto conto del motivo per cui è importante utilizzare le protezioni dell’intestazione mentre si ha a che fare con i file di intestazione in C++.


Staff

Staff

Next Post
Short on Time? 4 Time Hacks to Get Your Schedule Under Control

Short on Time? 4 Time Hacks to Get Your Schedule Under Control

Raccomandati.

Huawei P40 / P40 Pro si aggiornano con le patch di marzo in Europa (foto)

Huawei P40 / P40 Pro si aggiornano con le patch di marzo in Europa (foto)

20 Aprile 2021
Andare avanti nella vita: i 7 migliori segreti dei grandi successi

Andare avanti nella vita: i 7 migliori segreti dei grandi successi

14 Gennaio 2021

Tendenza.

No Content Available

DISCLAIMER

Questo sito non costituisce testata giornalistica e non ha carattere periodico essendo aggiornato secondo la disponibilità e la reperibilità dei materiali. Pertanto non può essere considerato in alcun modo un prodotto editoriale ai sensi della L. n. 62 del 7/3/2001.

Pagine

  • CONTATTACI

© 2019 Soluzioni-crm.it

No Result
View All Result

© 2022 JNews - Premium WordPress news & magazine theme by Jegtheme.