Red de conocimiento informático - Computadora portátil - ¿Cuál es la diferencia entre los lenguajes C++ y C?

¿Cuál es la diferencia entre los lenguajes C++ y C?

El lenguaje C es un lenguaje estructurado y modular orientado a procesos, y C++ es un lenguaje de programación orientado a objetos. C++ es un superconjunto del lenguaje C. En otras palabras, si aprendes C++, en realidad aprendes el lenguaje C. C++ es un superconjunto del lenguaje C. En cuanto a la diferencia, cabe decir que las ideas de programación son diferentes. C está basado en procesos, enfatizando la función del programa, con las funciones como centro. Hace hincapié en el nivel del programa y la clasificación, es un diseño basado en la abstracción y presentación de definiciones de objetos, es decir, la programación. Específicamente, es una larga historia. Se recomienda que todos aprendan a pensar y programar de forma orientada a objetos cuando aprendan C++. Hoy en día se aplican técnicas de análisis y diseño orientado a objetos a la hora de desarrollar grandes proyectos.

¿Cuál es la diferencia entre C y C++?

Hoy vi a alguien en NetEase preguntando cuál es la diferencia entre C y C++. La mencionaré brevemente aquí.

No hace falta decir otras cosas, como clases, herencia, referencias, etc., todo el mundo lo sabe.

Las siguientes son las diferencias al llamar a la compilación.

ifdef __cplusplus

extern "C"

endif

ifdef __cplusplus

endif

Esto refleja directamente la diferencia en la programación real. Esto refleja directamente la diferencia en la programación real. En la serie GANAR. Todos los LIB proporcionados por WIN32 SDK están en formato de lenguaje C. Por supuesto, tanto C como C++ admiten llamadas C, STDCALL y FASTCALL. ¿Por qué el sistema proporciona una LIB compilada por un compilador de C en lugar de una LIB compilada por C++? Aquí es donde se diferencian los compiladores de C y C++.

Todos los nombres de las funciones solo están claros en el compilador ensamblador. Porque el compilador ensamblador no realiza ninguna modificación al compilar la función.

Cuando un compilador de C compila un nombre de función, si una llamada de C le parece al compilador de ensamblado que es una llamada de C, irá precedida por un guión bajo ('_'). La función STDCALL será _FUNC@NUMBER. Por ejemplo, FUNC (void) se convierte en _FUNC@0 después de que el compilador compila una función llamada por FASTCALL en @FUNC@0. La llamada PASCALL ya no es necesaria en el compilador WIN32 y VC6 eliminó la compatibilidad con PASCALL.

No basta con mirar el compilador de C, sino también lo que ha hecho el compilador de C++. Por defecto. El compilador de C++ incluye el nombre de la función, la clase, los tipos de parámetros, la convención de llamada y el tipo de retorno al compilar una función de C++. Lo peor es que solo el nombre de la función y el nombre de la clase son visibles después de la compilación. El resto es sólo una larga cadena de letras ABCD irreconocibles. Podemos ver un ejemplo de este tipo en el manual de VC:

void __stdcall b::c(float -----------> ?c@b@@@QAGXM@ Z);

Incluso el nombre de una función no se conoce después de la compilación. en este caso. Si el compilador de C++ que viene con el SDK no proporcionara la LIB, podría decirse que sería imposible compilar cualquier programa WIN completo. Sin mencionar la programación en lenguaje mixto.

Ahora, el compilador de VC proporciona la declaración externa. Cuando aparece una declaración "C" externa, la función encerrada entre paréntesis pasará por el compilador como lenguaje C. Esto facilita la provisión de programas de biblioteca.

Existen muchas diferencias entre el lenguaje C y C++:

1. Desde la perspectiva de las nuevas ideas de programación, el lenguaje C está orientado a procesos, mientras que C++ está orientado a objetos.

2. El lenguaje C tiene bibliotecas de funciones estándar, que son flexibles y simplemente colocan funciones de la misma función en un archivo de encabezado; mientras que C++ tiene integradas la mayoría de las funciones y, en particular, C++. La API, que no se encuentra en el lenguaje C, combina orgánicamente la mayoría de las API del sistema Windows en un colectivo.

3. Especialmente el procesamiento de gráficos en C++ es muy diferente de los lenguajes gráficos.

Las funciones de procesamiento de gráficos en C++ básicamente no están disponibles en C++. El procesamiento de gráficos no está incluido en el estándar C++.

4. Tanto C como C++ tienen el concepto de estructura, pero en la estructura C solo hay variables miembro y no métodos miembro, mientras que en la estructura C++, puede tener sus propias variables miembro y funciones miembro. . Pero en lenguaje C, los miembros de la estructura son públicos y cualquiera puede acceder a ellos, mientras que en VC++, los miembros de la estructura son privados y no tienen calificadores.

4. El lenguaje C se puede utilizar para escribir programas en muchos aspectos, mientras que C++ se puede utilizar para escribir más y mejores programas. C++ se puede utilizar para escribir programas basados ​​en DOSr, escribir archivos DLL, escribir controles, etc. y escribir sistemas.

5. La organización de los archivos de programa en lenguaje C es flexible y casi todos se dejan al programa para su procesamiento; mientras que la organización de los archivos en C++ se basa en proyectos y cada archivo está claramente clasificado.

6. El entorno de desarrollo integrado en C++ es muy inteligente. Al igual que VB, algunas funciones pueden ser más potentes que VB.

7. C++ puede generar automáticamente la estructura del programa que desees, lo que puede ahorrar mucho tiempo.

8. C++ puede generar automáticamente la estructura del programa que deseas, por lo que puedes ahorrar mucho tiempo. Hay muchas herramientas que puede utilizar, como al agregar clases a MFC, al agregar variables, etc.

8. Hay muchas herramientas adicionales en C++. Puede analizar el sistema, ver API y ver controles. 9. La función de depuración es potente y existen muchos métodos.