Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

207
Views
¿C++ contiene todo el lenguaje C?

He leído en tutoriales que C++ contiene todo el lenguaje de programación C.

Sin embargo, también he leído, en lugares como este , que

Si aprende C ++, eventualmente aprenderá la mayor parte de C con algunas diferencias entre los idiomas que aprenderá con el tiempo.

Entonces mi pregunta es solo esta:

Si conozco muy bien C ++, ¿aprenderé eventualmente el lenguaje C "real" (sin ninguna "diferencia") porque el lenguaje C90 completo está incluido en C ++ 11?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

No, C++ no es un superconjunto del lenguaje C. Si bien C ++ contiene una gran parte de C, existen diferencias sutiles que pueden afectarlo gravemente donde menos lo espera. Aquí hay unos ejemplos:

  • C tiene el concepto de definiciones tentativas que no existe en C++.
  • C no requiere una conversión explícita en la asignación de punteros void a variables de tipo concreto.
  • C tiene reglas diferentes con respecto a la propagación const .
  • C tiene algo llamado "regla de int implícita", que, aunque se eliminó con C99, aparece algunas veces y debe tenerse en cuenta.
  • El preprocesador de C tiene algunas funciones que el preprocesador de C++ no tiene.
  • El lenguaje C tiene dos estilos de definición de función, estilo K&R y estilo Stroustrup. C++ solo tiene estilo Stroustrup.
  • Las reglas de lexing para C y C++ son diferentes y ninguna es un subconjunto de la otra.
  • C y C++ tienen diferentes conjuntos de palabras reservadas. Esto puede causar errores extraños porque no se permite un identificador en el otro idioma.
  • Si bien C++ tomó casi todas las funciones de ANSI C (C89), se agregaron muchas funciones a C en revisiones estándar posteriores que no están disponibles en C++.
  • C++ tiene una sintaxis diferente, incluso para algunas partes que no son nuevas. Por ejemplo, a ? b : c = d es un error de sintaxis en C pero analizado como a ? b : (c = d) en C++.
  • C garantiza que &*E es exactamente idéntico a E , incluso si E es un puntero nulo. C++ no tiene tal garantía.
  • En C, un literal de cadena que inicializa una matriz de caracteres puede inicializar una matriz que es al menos tan larga como la cadena sin el byte final \0 . (es decir, char foo[3] = "bar" es legal). En C++, la matriz debe ser al menos tan larga como la cadena, incluido el byte final \0 .
  • En C, un carácter literal como 'A' tiene tipo int . En C++, tiene tipo char .
  • C tiene una regla especial para hacer que los juegos de palabras mediante uniones sean legales. C++ carece de este lenguaje, haciendo código como

     union intfloat { int i; float f; } fi; fi.f = 1.0; printf("%d\n", fi.i);

    comportamiento indefinido.

over 4 years ago · Santiago Trujillo Report

0

Si conozco muy bien C ++, eventualmente aprenderé el lenguaje C "real" (sin ninguna "diferencia")

Si aprende C++ correctamente, probablemente no necesitará usar muchas de las técnicas estándar utilizadas en C. En teoría, podría programar casi cualquier cosa C en C++, con las excepciones que ya se han presentado. Sin embargo, en realidad, no lo harías, o no deberías hacerlo . Esto se debe a que C ++ es un lenguaje diferente que proporciona un conjunto de herramientas muy diferente cuando se usa de manera óptima.

Aparte de los elementos muy básicos como la sintaxis general y los tipos fundamentales, estos son dos lenguajes que evolucionan por separado y deben abordarse (aprenderse, programarse) como tales.

over 4 years ago · Santiago Trujillo Report

0

En términos generales, el lenguaje C++ es esencialmente C con un montón de cosas añadidas orientadas a objetos. Casi todo el código que podría escribir en C también se compilará y ejecutará sin problemas en C++.

Sin embargo, hay algunos rincones de los idiomas donde hay diferencias. El número de estos ha ido creciendo lentamente con el tiempo, pero los idiomas no están cambiando lo suficientemente rápido como para que eso sea un problema significativo.

Si solo aprende C++, entonces sí, eventualmente también aprenderá casi todos los aspectos del lenguaje C. Si se vuelve un experto en C++, podrá identificar y comprender los lugares donde existen pequeñas diferencias entre las partes similares de C y C++.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!