C vs C++ – vantaggi con linguaggio c

C++, come suggerisce il nome, è un superset di C. infatti, C++ possono eseguire la maggior parte del codice C, mentre C non può eseguire codice C++.

Ci sono numerosi vantaggi con c++ rispetto a c – per esempio

  • dati non possono essere nascosti in linguaggio c
  • c è di più basso livello (il che significa più difficile da comprendere e codice – che significa più bug)
  • c non permette di overloading di funzioni
  • c non supporta la gestione delle eccezioni
  • è possibile utilizzare le funzioni all’interno di strutture in C++ ma non in C

Questo elenco potrebbe essere certamente molto più a lungo – ma qui arriva la mia domanda: c’È QUALCHE vantaggio c-lingua rispetto al c++? C’è niente che è meglio con c che con c++? Non c ho niente che c++ manca?

Non so tutto questo, ma c’c, eventualmente, essere leggermente più veloce di c++ per il minor numero di istruzioni-set? Un linguaggio di basso livello sarebbe forse richiedono un minor numero di istruzioni da parte del processore.

  • Non è un superset di C. E il suo nome implica che sia 1 in più C (a meno che non C è il massimo valore rappresentabile per il suo tipo).
  • supporto in sistemi embedded e/personalizzati con il compilatori viene in mente
  • Il suo nome implica che, dopo la valutazione, C è uno in più rispetto a C++ 🙂
  • Questa domanda è così ampia, ho voluto dare una risposta, ma non so nemmeno da dove cominciare.
  • Mi piace molto C vs C++ confronti, ma penso che C e C++ sono abbastanza diverse lingue.
  • “c è di più basso livello”, che può essere visto come un vantaggio, a seconda del contesto.
  • C++, as the name suggests, is a superset of C. No, non è così. data can not be hidden in c language Sì, è possibile.
  • Se C è unsigned e raggiunge la sua massima potenza, C++ 0 🙁
  • Non vorrei dire C è molto di più basso livello. C++ ottiene per il nocciolo altrettanto bene se ne avete bisogno.
  • Il C++ non è un rigoroso superset di C. Ci sono validi programmi in C che non sono valide, in C++, e ci sono validi programmi in C che sono validi programmi in C++ una semantica diversa. È possibile, e non troppo difficile, per scrivere codice valido C e C++, con la stessa semantica-ma c’è raramente una buona ragione per farlo.
  • Iniziale compilatore C++ è un traduttore che ha preso il codice sorgente C++, tradotto in codice sorgente in C e compilato. Così in quel momento, Nulla di C++ potrebbe fare, C potrebbe anche, ma non necessariamente in un altro modo, facendo il C++ funzionale sottoinsieme di C.
  • Possibile duplicato di stackoverflow.com/questions/497786/…
  • Potrei andare troppo lontano con questo, ma è possibile sovraccarico di funzioni in base al numero di parametri in C utilizzando variadic macro. Vedere BOOST_PP_OVERLOAD, ma sostituire una normale funzione per il sovraccarico del macro.
  • “C’è alcun vantaggio” – è appena elencato tutti i motivi!
  • “c è di più basso livello (il che significa più difficile da comprendere e codice – che significa più bug)” – Beh, io’mnot convinto che C è di più a “basso livello” rispetto al C++, ma a prescindere, è la conclusione, vero? Io sono vissuto in entrambe le lingue, e lasciate che vi dica; in C++ consente piuttosto brutto, estremamente sottili bug di scivolare attraverso le quali sarebbe impossibile in C. Suona come l’inesperienza che mi parla.
  • Questo non dovrebbe essere stato chiuso, in primo luogo.



One Reply
  1. 6

    In modo semplice, C e C++ sono due lingue diverse.

    C++, come suggerisce il nome, è un superset del C

    No. Questo non è vero. Il C++ non è un superset di C..

    C’è QUALCHE vantaggio con linguaggio c rispetto al c++? C’è niente che è meglio con c che con c++?

    • Statico inizializzare è sicuro in C ma non in C++, perché in C++ inizializzazione statica può causare l’esecuzione di codice, che dipende da altre variabili, essendo stato inizializzato in modo statico. Può anche causare il codice di pulizia da eseguire presso l’arresto, che non è possibile sequenza di controllo di (distruttori).

    • C ti dà più controllo su ciò che accade quando il codice viene eseguito. Durante la lettura di cercare è abbastanza semplice decifrare un codice è avere eseguito e quando la memoria è sufficiente riavviare o primitiva operazioni vengono eseguite.

    • C supporta dimensioni variabili array sullo stack. Che è molto più veloce di allocare sul mucchio. (C99) e

    • No name mangling. Se avete intenzione di leggere il codice assembly generato, questo rende molto più facile. Può essere utile quando si cerca di ottimizzare il codice.
      De facto standard ABI (application binary interface). Codice prodotto da diversi compilatori possono essere facilmente combinati.

    • Molto più facile interfaccia con le altre lingue. Un sacco di lingue vi permetterà di chiamare le funzioni C direttamente. Associazione per una libreria in C++ è di solito un molto più elaborata di lavoro.

    • Compilazione di programmi C è più veloce la compilazione di programmi C++, in quanto l’analisi del C è molto più facile che l’analisi di C++.

    • Varargs non possono essere utilizzate in C++. Non sono del tutto sicuro in C sia. Tuttavia sono ancora di più, in C++, al punto che sono vietati in C++ standard di codifica (Sutter, Alexandrescu).

    • C richiede meno il supporto runtime. Lo rende più adatto per il basso livello di ambienti come sistemi embedded o componenti del sistema operativo.

    • Modo Standard in C per fare l’incapsulamento è avanti dichiarare una struttura e consentire l’accesso solo ai propri dati attraverso funzioni. Questo metodo crea anche la compilazione di incapsulamento. Compilazione di incapsulamento permette di modificare le strutture di dati i membri senza necessità di ricompilazione del codice cliente (codice, utilizzando la nostra interfaccia). Il modo standard di fare incapsulamento C++ su altra parte (utilizzando le classi) richiede la ricompilazione del codice del cliente durante l’aggiunta o la rimozione di variabili membro private.

    • Perché giù a votare ?
    • Anche se sono d’accordo con la prima parte (su C e C++ essendo diversi), non rispondendo alla domanda..
    • Le due linee di risposte a tutte le domande OP chiesto. La risposta a questo argomento può essere molto ampio.
    • Sì, è vasta, che è perché è chiuso come “troppo ampio”: l’esatto contrario di quello che lei fatto, che è quello di dare un segnaposto non-risposta che sostanzialmente dice: “non perdete tempo con questa domanda”.
    • Io mi auguro che non significa C programmi di correre più veloce di C++ dopo i programmi sono costruiti…
    • Vedere la modifica.
    • “La compilazione di programmi C è più veloce la compilazione di programmi C++, in quanto l’analisi del C è molto più facile che l’analisi di C++.” Hai mai misurato? Ho seri dubbi che si possono presentare un file per il quale questo effettivamente conseguito.
    • molti dei “vantaggi” che hai elencato sono il tuo parere o non può essere provata. “C supporta dimensioni variabili array sullo stack. Che è molto più veloce di allocare sul mucchio. (C99) e poi” Sì, ma la pila è di dimensioni limitate, quindi questo è davvero un vantaggio?
    • Ecco perché non ho mai confrontare due lingue con l’altro.
    • salvo solo ora 😛
    • Questo è un vero peccato che questa domanda è stata messa in attesa – e non capisco perché la mia domanda era fortemente downvoted di più, -3. E la risposta dovrebbe essere più con voto positivo!!! Molto bella risposta!!!! @haccks – grazie!!!!!
    • Sì, questo risponde a 3 delle 4 domande da dove la vedo io. Perché la critica? Sembra neutra e informativo sufficiente questo.

Lascia un commento