Tutorial de C++: cómo hacer una columna de la serie C++, parte 1

sobre la columna

Esta columna es una columna tutorial de C++ de alta calidad y se mantendrá actualizada

Esta columna utiliza constantemente el sistema operativo: macOS Ventura, el editor de código: CLion y el compilador de C++: Clang

Gracias amigos que han estado con ustedes todo el camino, gracias por su apoyo ^ _ ^

Por supuesto, C++ es un lenguaje portátil, lo que significa que los amigos que usan Linux y Windows también pueden leer este artículo para familiarizarse con C++.

Los comentarios del blogger son muy oportunos. Si encuentra problemas mientras lee, puede hacer preguntas directamente en el área de comentarios, y el blogger le dará su opinión dentro de las 24 horas posteriores a su lectura.

Tutorial de C++: cómo hacer una columna de la serie C++, parte 1


Tabla de contenido

sobre la columna

actualizar registro

5 de agosto de 2023

prefacio

Sus requisitos previos de C++

traductor? ¿Qué es G++, Clang?

¿Cuál es la diferencia entre G++ y Clang?

¿Qué es la portabilidad?

¿Existe un estándar para C++?

nombre de extensión

tu primer C++

 función principal

encabezado de función

vacío principal()

volver 0

Declaraciones y punto y coma

Notas para C++

epílogo

cambio rápido de página

Este artículo hace referencia a artículos, libros


actualizar registro

5 de agosto de 2023

Publicar el primer artículo.


prefacio

Este artículo describirá los preliminares de C++, ¿qué es un compilador? ¿Cuál elegir entre Clang y g++? ¿Qué es la portabilidad de C++? ¿Existe un estándar para C++? ¿Cuál es la extensión de C++? Es la primera vez que escribe su programa C++, comprenda qué es un encabezado de función, ¿debe haber un punto y coma? ¿Cómo escribir comentarios? ¿Sigue siendo "#"?


Sus requisitos previos de C++

Creo que todo el mundo ha oído hablar de C++ más o menos, y más o menos sabe que tiene muchos campos de aplicación.

Desde 2002, C ++ se ha desarrollado extremadamente rápido en las últimas décadas, pero su clasificación siempre ha estado entre los 5 primeros. Se puede ver que su estatus en el lenguaje de programación

Es solo que con el cambio de C/S (cliente/servidor) a B/S (navegador/servidor) y el desarrollo de teléfonos Android en los últimos años, Java siempre ha estado en la cima. Python, junto con la eficiencia de desarrollo de los rastreadores y los marcos Django en el desarrollo web, y las ardientes ventajas de la inteligencia artificial de este año también se están disparando.

Pero parece que encontramos que no existe una amenaza real para el estado de C ++

Hay un dicho popular en el mundo de la programación: C puede hacer casi cualquier cosa y C++ puede hacer casi todo bien, lo que demuestra sus poderosas funciones, y la comunidad de desarrollo de C++ también se está volviendo cada vez más sólida.

Entonces se puede ver que C ++ es un lenguaje perdurable

traductor? ¿Qué es G++, Clang?

Si está leyendo un artículo, pero este artículo no está escrito en chino, tal vez algunos estudiantes puedan entender bien el idioma extranjero, pero la mayoría de ellos lo traducirán en la herramienta de traducción.

Esencialmente, solo está escribiendo en un idioma que no entiende en el traductor, y el traductor traduce la oración al chino, así:

No entiendes muy bien lo que significa "gato", así que abres el traductor, eliges chino a inglés y el traductor te dice que significa "gato".

El sistema operativo no puede entender lo que escribe, por lo que debe compilarse en un archivo ejecutable ( .out para estudiantes de macOS y Linux , y .exe para estudiantes de Windows )

¿Cuál es la diferencia entre G++ y Clang?

Por ahora, no hay diferencia entre ellos. Es posible que hablemos sobre las diferencias entre las diferentes implementaciones de C++ más adelante, pero ahora no hay diferencia entre ellas. Este artículo elige a Clang como el compilador, y los estudiantes en macOS, Linux y Windows pueden funciona normalmente Use el mismo compilador, le sugiero que haga lo mismo que nosotros, pegue la dirección de descarga de Clang aquí e instale Xcode Command Line Tools en macOS.

¿Qué es la portabilidad?

La portabilidad de C++ se refiere a la capacidad del código para compilarse y ejecutarse en diferentes plataformas, sistemas operativos y compiladores.

¿Tal vez entiendes? ¿Sigo sin saberlo? Por ejemplo:

Suponga que escribe un programa ensamblador en una MacBook con macOS, y ahora necesita ejecutarlo en una computadora con un sistema Linux, entonces necesita...

Necesitas reescribir un programa adecuado para esta plataforma (sí, te romperá, porque necesitas aprender más cosas)

Pero si se cambia a C++, será diferente, pase el archivo de código fuente y compílelo en Linux para usarlo.

¿Existe un estándar para C++?

ISO/IEC 14882:1998 es el primer estándar general internacional de C++, seguido de C++03 (ISO/IEC 14882:2003), generalmente usando C++98, C++03 y C++ más tarde 11, C++ 17, C++20, probablemente todos entiendan lo que significa, ¿verdad?

El estándar ISO C ++ también incorpora el estándar ANSI C, porque C ++ generalmente es un superconjunto de C, lo que significa que cualquier programa C puede ejecutarse sin problemas en C ++.

nombre de extensión

Sus extensiones son generalmente .cpp (C Plus Plus) , y nuestros programas también terminarán en .cpp


tu primer C++

primero.cpp

#include <iostream>

int main(void)
{
    using namespace std;
    cout << "This is my first C++ program!" << endl;
    cout << "Let's go!"
    cout << endl;
    return 0;
}

 función principal

La estructura básica del código first.cpp es la siguiente:

int main(void)
{
    code
    return 0;
}

Estas líneas dicen: Hay una función llamada main(void) y describe el comportamiento de la función

Estos códigos (el anterior, omitido) se denominan definiciones de función, y la definición consta de un encabezado de función y un cuerpo de función, que se explicarán a su vez a continuación.

encabezado de función

int main(void)

es el encabezado de la función, donde int representa su tipo: entero (lo explicaremos en detalle más adelante, a menudo hablaremos de él después de int ), main se llama el nombre de la función, " (void) " significa que la función no acepta cualquier parámetro, también puede usar corchetes vacíos "()", que son equivalentes a ambos. En el libro "C++ Primer Plus", son corchetes vacíos. Ambos son aceptables. Agregar vacío puede ser más intuitivo, pero la mayoría de ellos son no agregado Sigue aquí A todos les gusta.

vacío principal()

¡Los amigos que leen cualquier libro de C ++, adhiriéndose al espíritu de salvar uno es uno, deben hacer una declaración solemne para todos!

Ver a muchos amigos, la función principal está escrita como void main() en lugar de int main()

Puede leer en el libro que estos dos son iguales, como "C ++ Primer Plus" dice:

Algunos programadores usan los siguientes encabezados de función y omiten la declaración de retorno:

void main()

Esto es lógicamente coherente porque un tipo de retorno nulo significa que la función no devuelve ningún valor. Esta variante funciona en muchos sistemas, pero no funcionará en algunos ya que no es una opción impuesta por el estándar actual. Por lo tanto, los lectores deben evitar este formato y utilizar en su lugar el formato estándar de C++, que no requiere mucho trabajo.

Déjame decirte aquí que la forma de escribir void main() es fundamentalmente incorrecta, completamente incorrecta

¿Ha notado el valor de retorno de la función principal ? Algunas personas pueden decir que no hay valor de retorno. Si profundiza en el código de inicio CRT del programa, encontrará...

__initenv = envp;
mainret = main(argc, argv, envp);
if ( !managedapp )
   exit(mainret);
if (has_cctor == 0)
   cexit();

De acuerdo con el estándar C99, incluso si la función en sí misma no define un valor de retorno, el compilador lo agregará para regresar al programa estimulante, el estado de ejecución. Y void main() nunca se ha definido en C y C++

Bjarne Stroustrup , el padre de C++, escribió claramente en las preguntas frecuentes de su página de inicio

La definición void main( ) { /* ... * / } no es y nunca ha sido C++, ni siquiera ha sido C.

Traducción: void main() nunca existió en C++ o C 

En otras palabras, algunos compiladores pueden pasar void main() , pero el estándar ISO no define void main() en absoluto, y algunos compiladores no funcionarán, por lo que puede estar triste :(, estudiantes que usan C++ Todavía use int main o int main (vacío)

Amigos que han estudiado C mira aquí

Hay una forma de escribir en C:

main()

Omitir el tipo de valor devuelto en C es equivalente a devolver el tipo de valor como int , pero este uso se elimina en C++

volver 0

Puede encontrar que hay un valor de retorno al final, que le indicará al sistema operativo que no hay problema con este programa, y ​​un valor que no sea 0 se considerará un error.

Declaraciones y punto y coma

Las sentencias son acciones a realizar. Para comprender el código fuente, el compilador necesita saber cuándo termina una instrucción y comienza otra. Algunos idiomas usan separadores de declaraciones. Por ejemplo: FORTRAN separa declaraciones por finales de línea, Pascal usa punto y coma para separar declaraciones. En Pascal, el punto y coma se puede omitir en algunos casos, como después de la declaración antes de END, en este caso, las dos declaraciones no están realmente separadas. Pero C++, como C, también usa terminadores en lugar de delimitadores. Un terminador es un punto y coma, que es el marcador de cierre de una declaración y es una parte integral de una declaración, no un marcador entre declaraciones. La conclusión es: en C++, el punto y coma no se puede omitir

Los estudiantes que han aprendido otros idiomas pueden sentirse un poco incómodos

Notas para C++

C++ usa barras inclinadas dobles "//" como comentarios, y las cosas detrás de los comentarios se eliminarán durante la precompilación, y luego explicaremos en detalle qué es la precompilación en el encabezado del archivo.

Por supuesto, también podemos usar comentarios estilo C, es decir, se comentará la información entre /* y */, los estudiantes que han aprendido CSS pueden estar muy familiarizados con él jaja

Los estudiantes que han aprendido Python recuerdan que los comentarios no son #, no, no, no


epílogo

El autor a menudo ayudará a sus amigos con problemas a resolver problemas. Si tiene alguna pregunta, puede señalarla directamente en el área de comentarios, y el autor responderá dentro de las 24 horas posteriores a verla.

Si tiene alguna pregunta sobre este artículo, indíquelo en los comentarios. Si le gusta este artículo, haga clic en Me gusta, comente y siga

Si hay personas a tu alrededor que han mencionado este campo como tú, o esperan progresar junto con él, comparte el artículo con él.

4008 palabras, 8 padres, 4 hijos, 6 nietos, 2 bisnietos


cambio rápido de página

Otros artículos de calidad de bloggers:

Recortar un Linux simple

Hexo tutorial, solo lee este - Cómo hacer series 

Cómo escribir blogs de alta calidad en CSDN - How to series

Conferencia de desarrolladores de Apple WWDC23: las ambiciones de Apple


Este artículo hace referencia a artículos, libros

artículo de referencia 

¿De qué sirve aprender C++? ¿Dónde está el futuro de C++? - saber casi

Compare las diferencias entre las arquitecturas C/S y B/S (principios, ventajas y desventajas, ámbito de aplicación) y las principales plataformas de aplicaciones web, principios de funcionamiento web_diferencias entre b/s y c/s_MarsYjZ's Blog-CSDN Blog

https://wenku.csdn.net/answer/18a7406a5b2e4d178d90cda0b3b07288

¿Qué es un compilador? Compiladores en C explicados para principiantes

¿Por qué la portabilidad de los programas escritos en ensamblador es pobre?

¿Cómo entender mejor la portabilidad de C/C++? - saber casi

ISO-Buscar

Explicación detallada de todo el proceso de preprocesamiento, compilación, ensamblaje y enlace del código C/C++ 

 Notas de la versión de Clang 16.0.0 — documentación de Clang 16.0.0

[Switch] void main() o int main()_¿Se puede omitir void en lenguaje c?_Contentment--Blog de Changle-CSDN Blog

libros de referencia 

Primer Plus de C++

Supongo que te gusta

Origin blog.csdn.net/cat_bayi/article/details/132120795
Recomendado
Clasificación