Una columna avanzada de desarrollo C/C++ sistemático
Tabla de contenido
1. Columna avanzada de desarrollo sistemático c/c++
1.1 Características de la columna
1.2 Resumen de los puntos técnicos involucrados
2. Puntos técnicos del tema e índice de publicación de blog
2.1 Temas de funciones (5 artículos)
2.2 Temas de categoría (8 artículos)
2.3 Gestión de memoria (5 artículos)
2.4 Programación de plantillas (10 artículos)
2.6 String y E/S de entrada y salida (6 artículos)
2.7 Multihilo y corrutinas (6 artículos)
2.8 Macros y aserciones (2 artículos)
3. Casos prácticos e índice de publicaciones en el blog
3.1 Diseño de comunicación (8 artículos)
3.2 Monitoreo de recursos (6 artículos)
3.3 Interfaz de servicio (10 artículos)
3.4 Sistema de registro (3 artículos)
3.5 Servicios de ingeniería (9 artículos)
La columna de caso de combate real y desarrollo avanzado de c/c++ está llegando a su fin de acuerdo con mi idea original. Ahora clasifico toda la columna, organizo las publicaciones de blog de cada capítulo y construyo un índice, para que los fanáticos y lectores puedan leer y saltar Espero que todos puedan ganar algo después de leer la publicación de blog que escribí para esta columna.
1. Columna avanzada de desarrollo sistemático c/c++
Soy un beneficiario de las publicaciones de blog de CSDN, especialmente cuando comencé a trabajar. En ese momento, aquellos que podían escribir blogs técnicos en él a menudo eran líderes técnicos que habían trabajado durante muchos años y tenían mucha experiencia práctica en proyectos. Había relativamente pocas publicaciones de blog, pero los puntos técnicos estaban muy enfocados, por lo que no tiene que preocuparse por leer esas publicaciones de blog. En la actualidad, en CSDN, a menudo se ve abrumado por este portador de blog de conocimiento fragmentado. Muchas publicaciones de blog técnico son registros de aprendizaje de los estudiantes. Ahora lo uso como un contestador de preguntas con más frecuencia.
La fragmentación del conocimiento hará que el conocimiento adquirido se fragmente cada vez más, ya no es un estudio profundo y sistemático, sino un estudio fragmentado, y los fragmentos carecen de correlación mutua y sistematicidad. Con el "conocimiento de comida rápida" de Internet convirtiéndose en la superficie de contacto principal para la instilación del conocimiento de todos, la búsqueda gradualmente unilateral de la amplitud del conocimiento y la pérdida de la búsqueda de la profundidad del conocimiento pueden dar como resultado una comprensión incompleta del conocimiento, al igual que el aprendizaje. de "conocimiento superior". Al mismo tiempo, el aprendizaje fragmentado del conocimiento hará que las personas tengan una sensación de sobrecarga de información y ansiedad.
Por lo tanto, cuando escribo mi propio blog, espero brindarles a los lectores que lean mi blog un conocimiento completo, factibilidad comprobada, publicaciones de blog técnicas con requisitos de entorno de compilación, configuración de proyectos y código fuente completo, etc. consumen menos tiempo y desvíos.
1.1 Características de la columna
Esta es una columna de conocimientos sistemáticos sobre el desarrollo avanzado de c/c++. Explica principalmente los puntos técnicos de c/c++ utilizados en proyectos reales, por lo que no implicará problemas algorítmicos menores, como la clasificación y las preguntas de las entrevistas. Se centra principalmente en la mayoría de c/c++ Un punto técnico a largo plazo utilizado en el desarrollo de C++.
La llamada sistematicidad se encuentra principalmente en dos aspectos:
[1] Esta columna tomará los puntos técnicos involucrados en el desarrollo de proyectos c/c++ como tema y luego llevará a cabo debates multifacéticos en torno a cada tema, generalmente centrándose en este tema e intercalando otros puntos de conocimiento relacionados.
【2】Estas publicaciones de blog temáticas comenzarán a partir de los principios de los puntos de conocimiento, descripciones, API y aplicaciones, y brindarán entornos de compilación específicos, requisitos de compilación, código completo que se puede compilar y resultados de demostración.
Esta columna es una columna avanzada para el desarrollo de c/c++, que está orientada al desarrollo de proyectos reales, por lo que no involucrará la explicación gramatical de c/c++, ni le enseñará cómo lidiar con entrevistas y preguntas, etc. Principalmente describe cada uno de los puntos técnicos de c/c++, combinados con casos de código fuente, explica estos puntos técnicos y las funciones, clases y bibliotecas estándar implicadas, cómo se denominan, utilizan y combinan para diseñar nuevas aplicaciones en el proyecto.
1.2 Resumen de los puntos técnicos involucrados
La columna avanzada de desarrollo C/C++ involucrará algunos temas y puntos de conocimiento:
-
Diseño de funciones: comprensión profunda de las definiciones de funciones, parámetros de funciones, punteros de funciones y otros puntos de conocimiento, cómo diseñar y optimizar la eficiencia de ejecución de funciones.
-
Diseño de clases: cómo diseñar funciones básicas de miembros de clases, definir variables de miembros, discutir cómo diseñar operadores de clases, funciones virtuales, sistemas de herencia, etc.
-
Programación de plantillas: comprenda el conocimiento básico de la programación genérica, analice las habilidades de diseño de plantillas de funciones y plantillas de clases, y analice la estrecha relación y el mecanismo de implementación de la programación genérica y las bibliotecas estándar.
-
Programación y algoritmos genéricos: aprenda cómo la programación genérica diseña estructuras de datos de uso común como contenedores estándar, estudie la combinación de contenedores como la secuencia y la asociación en la biblioteca estándar con algoritmos como la clasificación y la búsqueda, y cómo usarlos para hacer que el diseño del programa sea más eficiente y sencillo.
-
Programación simultánea y de subprocesos múltiples: el uso de la programación simultánea y de subprocesos múltiples puede mejorar la eficiencia del programa; debe comprender conceptos relacionados, como la sincronización de subprocesos, la exclusión mutua, los bloqueos, las corrutinas y los tipos atómicos.
-
Administración y optimización de la memoria: debe prestar atención a problemas como pérdidas de memoria y punteros salvajes, y comprender el mecanismo de administración de memoria y los métodos de optimización de memoria de C++, como la tecnología de grupo de memoria de STL.
-
Ingenio del código: comprenda la influencia de las macros, las aserciones, los operadores, los punteros, etc. en la optimización del código correspondiente y cómo ajustar iterativamente el código desde la apariencia básica de un negocio sencillo hasta un método de ejecución corto, elegante y eficiente.
-
Interacción del sistema: comprenda los conocimientos básicos del funcionamiento del sistema, como la gestión de procesos, la gestión de memoria, el sistema de archivos, el funcionamiento de E/S, la supervisión de recursos de TI, etc.
-
Use bibliotecas y marcos de trabajo de terceros: use bibliotecas y marcos de trabajo de terceros de uso común, aprenda la interacción entre C/C++ y bibliotecas de terceros y lenguajes compilados, y analice las llamadas de la interfaz API del servicio, la comunicación de red, etc.
-
Todo sirve al proyecto: no tiene mucho que ver con el negocio, pero se explican algunos contenidos esenciales del sistema, cómo compilar bibliotecas dinámicas y estáticas, realizar la gestión y programación de bibliotecas, registrar la operación y el mantenimiento del sistema de monitoreo del sistema, monitorear los recursos informáticos, etc.
2. Puntos técnicos del tema e índice de publicación de blog
2.1 Temas de funciones (5 artículos)
[1] desarrollo c/c++, casos de uso inevitables de punteros de función
Desarrollo de C/c++, casos de uso inevitables de punteros de función El caso de prueba de desarrollo de código fuente muestra los diversos puntos de conocimiento involucrados en la publicación del blog https://blog.csdn.net/py8105/article/details/128985506 [2] c/c++ desarrollo, práctica de parámetros de función inevitable
Desarrollo de C/c++, práctica de parámetro de función inevitable_py_free-IOT Intelligent Blog-CSDN Desarrollo de Blogc /c++, práctica de parámetro de función inevitable, análisis de varios puntos de conocimiento involucrados en parámetros de función y explicación del caso del código fuente https: //blog.csdn.net/py8105 /article/details/128996490 [3] C/C++, función de operación de archivo C++
Función de operación de archivo C/C++, C++_py_free-IOT Intelligent Blog-CSDN Blog Función de operación de archivo C++, que explica las funciones estándar, no estándar, de flujo y otras funciones de archivo de acceso, operación y administración de archivos de operación C++. https://blog.csdn.net/py8105/article/details/127699775 [4] Los contenedores ordenados de C/C++ y las funciones de clasificación comparan el diseño de funciones al aplicar tipos de datos definidos por el usuario
El contenedor ordenado y la función de clasificación en c/c ++ se comparan con el diseño de la función cuando se aplican tipos de datos definidos por el usuario. https://blog.csdn.net/py8105/article/details/127086394 [5] C/ Desarrollo C++, aplicación de punto de tecnología lambda C++
2.2 Temas de categoría (8 artículos)
[1] Desarrollo c/c++, tipo de clase personalizado inevitable (parte 1) Casos de implementación de funciones básicas de uso común
Desarrollo de c/c++, tipos de clases personalizados inevitables (Parte 1) Casos de implementación de funciones básicas de uso común_ejemplos de funciones de c++_py_free-IOT Blog inteligente-CSDN Blog Desarrollo de c/c++, tipos de clases personalizadas inevitables (Parte 1) Casos de implementación de funciones básicas de uso común, un caso de implementación de clase similar a la clase String que incluye constructores predeterminados, constructores ordinarios, constructores de copia, destructores y funciones de miembro básicas de función de asignación https: //blog.csdn .net/py8105/article/details/128867307 [2] c/c++ desarrollo, tipo de clase personalizado inevitable (Parte 2) Relación de combinación de clases
Desarrollo c/c++, tipos de clases personalizados inevitables (Parte 2) Relación de combinación de clase_py_free-IOT Blog inteligente-CSDN Blog Relación de combinación de clase, que explica varias relaciones de combinación de clases, declaración previa, variables miembro de tipo de clase, relaciones de amistad, herencia y derivación , clases anidadas, clases locales y otros puntos de conocimiento relacionados con la combinación de clases y demostraciones y códigos de demostración. https://blog.csdn.net/py8105/article/details/129582001 [3] Desarrollo c/c++, tipos de clase personalizados inevitables (Parte 3) Clases y funciones virtuales
Desarrollo de C/c++, tipos de clases personalizados inevitables (Parte 3) Clases y funciones virtuales_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129615179 [4] Desarrollo c/c++, tipos de clase personalizados inevitables (Parte 4). Diseño de clases y miembros
Desarrollo C/C++, tipos de clase personalizados inevitables (Parte 4) Clase y diseño de miembros_py_free-IOT Intelligent Blog-CSDN Blog Desarrollo C/C++, tipos de clases personalizados inevitables (Parte 4) Diseño de clases y miembros, explicación de las variables de miembros y publicación -Planificación del diseño de funciones de miembros bajo el diseño de clase, el uso combinado de miembros de clase y varias palabras clave específicas y escenarios de negocios específicos, y dar código fuente y demostración. https://blog.csdn.net/py8105/article/details/129634949 [5] Desarrollo c/c++, tipos de clases personalizados inevitables (Parte 5), uso y diseño de clases
desarrollo c/c++, tipos de clases personalizados inevitables (Parte 5) usando y diseño de clases_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129662021 [6] Desarrollo c/c++, tipo de clase personalizado inevitable (Parte 6). Enumeración de clase especial
desarrollo c/c++, tipo de clase personalizada inevitable (Parte 6) Clase especial enum_py_free-IOT Intelligent Blog-CSDN Blog Dar demo y código fuente. https://blog.csdn.net/py8105/article/details/129676168 [7] Desarrollo c/c++, tipos de clases personalizados inevitables (Parte 7).
desarrollo c/c++, tipos de clase personalizados inevitables (séptima parte) ... Algunas piezas de plata, presenta la influencia de algunas palabras clave que aparecen en cada versión estándar en el diseño de clase, explica los puntos de conocimiento de noexcept, clase vacía, no_unique_address, explícito, constexpr, etc., y dar demostraciones y códigos fuente. https://blog.csdn.net/py8105/article/details/129685524 [8] Desarrollo c/c++, tipos de clase personalizados inevitables (Parte 8) Manejar adecuadamente las excepciones para las clases
2.3 Gestión de memoria (5 artículos)
[1] Desarrollo C/C++, gestión de memoria inevitable (Parte 1) - esas cosas sobre la memoria
Desarrollo de C/C++, administración de memoria inevitable (Parte 1) - Memory Things_py_free-IOT Smart Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129180213 [2] Desarrollo en C/C++, administración de memoria inevitable (Parte 2): restrinja la memoria escapada
[3] Desarrollo C/C++, gestión de memoria inevitable (Parte 3) - memoria del plan
[4] Desarrollo C/C++, gestión de memoria inevitable (parte 4) - alternativa de puntero inteligente
[5] Desarrollo C/C++, gestión de memoria inevitable (Parte 5) - C++ y recolección de basura Pescando la luna en el agua
2.4 Programación de plantillas (10 artículos)
[1] desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 1) - plantilla de función y plantilla de clase
Desarrollo de C/c++, práctica de programación de plantillas inevitables (Parte 1): plantilla de función y clase template_py_free-IOT Intelligent Blog-CSDN Blog desarrollo de c/c++, práctica de programación de plantillas inevitables (Parte 1), Introducción a los puntos de conocimiento y puntos de desarrollo de las plantillas de funciones y plantillas de clase, y proporcione los resultados prácticos de las pruebas de código fuente https://blog.csdn.net/py8105/article/details/129007643 [2] desarrollo c/c++, plantillas inevitables Práctica de programación (Parte 2): puntos clave de la plantilla Programación
Desarrollo C/C++, práctica inevitable de programación de plantillas (Parte 2) -Programación de plantillas Essentials_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129040834 [3] Desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 3): plantillas y polimorfismo, punteros y metaprogramación
Desarrollo en C/c++, práctica inevitable de programación de plantillas (Parte 3): plantillas y polimorfismo, punteros y metaprogramación La https://blog.csdn.net/py8105/article/details/129067623 [4] Desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 4): contenedor de secuencias y su aplicación
Desarrollo de C/C++, Práctica inevitable de programación de plantillas (Parte 4) - Contenedor de secuencia y su aplicación_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129098688 [5] desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 5): contenedores asociativos y su aplicación
Desarrollo de C/C++, Práctica inevitable de programación de plantillas (Parte 5 ) -Contenedores asociados y aplicación_py_free-IOT Smart Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129108158 [6] Desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 6): algoritmo genérico y aplicación
Desarrollo de C/c++, práctica inevitable de programación de plantillas (Parte 6): algoritmo genérico y application_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129112619 [7] desarrollo c/c++, práctica inevitable de programación de plantillas (parte 7): plantilla de clase personalizada y su aplicación
Desarrollo de C/c++, práctica de programación de plantillas inevitables (parte 7): plantilla de clase personalizada y plantilla application_cpp programación_py_free-IOT Blog inteligente-CSDN Desarrollo de blog c /c++, práctica de programación de plantillas inevitables (Parte 7), programación de plantillas, aplicación y diseño de plantillas personalizadas , construyendo plantillas de árboles binarios, expandiendo la aplicación funcional de plantillas de árboles binarios, verificando la disponibilidad de plantillas a través de códigos de prueba y dando pruebas y códigos fuente. https://blog.csdn.net/py8105/article/details/129150798 [8] desarrollo c/c++, práctica inevitable de programación de plantillas (parte 8): adaptación y aplicación del paquete de plantillas de biblioteca estándar
Desarrollo de C/c++, práctica inevitable de programación de plantillas (Parte 8): adaptación del paquete de plantillas de biblioteca estándar y application_py_free-IOT Intelligent Blog-CSDN Blog Estas plantillas se aplicarán a una clase de registro, que es independiente de subprocesos y tiene una clase de subproceso de administración de disco de subclase, que se utiliza para implementar la inspección del espacio restante en el disco y la eliminación de archivos de registro antiguos. https://blog.csdn.net/py8105/article/details/129170995 [9] desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 9) - nuevo contenedor de secuencias de c++11
Desarrollo de C/c++, práctica inevitable de programación de plantillas (Parte 9) - nuevo contenedor secuencial de c++11_c++11 new container_py_free-IOT Blog inteligente-CSDN Desarrollo c/c++, prácticas de programación de plantillas inevitables que se deben evitar (Parte 9) - El nuevo contenedor de secuencias de C++11, std::array container, es esencialmente una plantilla de estructura adaptada a la matriz, que puede considerarse como una matriz especial que admite iteradores y comprobaciones de seguridad; std::forward_list es una plantilla de clase de dos parámetros de plantilla T y std::allocator Es una lista enlazada individualmente y básicamente proporciona las mismas funciones que std::list. Proporcione código fuente de ejemplo y resultados de demostración. https://blog.csdn.net/py8105/article/details/129427681 [10] desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 10) - elemento de construcción in situ c++11 (emplace)
2.5 Operadores (4 artículos)
[1] desarrollo c/c++, operador operador inevitable (Parte 1), sobrecarga de operadores
desarrollo c/c++, operador inevitable operador (Parte 1), sobrecarga de operadores_los operadores no miembros requieren parámetros de tipo de clase o tipo de enumeración_py_free-IOT Intelligent Blog-CSDN Blogc/c++ desarrollo, no Operador evitable operador (Parte 1), sobrecarga de operadores, integral expone varios operadores convencionales, operadores y operadores especiales, y el diseño de la sobrecarga del operador, y brinda códigos de demostración y resultados de demostración. https://blog.csdn.net/py8105/article/details/129461618 [2] Desarrollo c/c++, operador operador inevitable (Parte 2), ¿cuánto sabe sobre operadores de asignación?
desarrollo c/c++, operador operador inevitable (parte 2), cuánto sabe sobre operadores de asignación Cuánto sabe sobre operadores de asignación, presente los operadores de asignación más utilizados, explique la asignación directa, copiar asignación, mover asignación, asignación compuesta y resolución de llamada de operador de asignación, y dar código fuente de demostración y demostración. https://blog.csdn.net/py8105/article/details/129473922 [3] desarrollo c/c++, operador operador inevitable (Parte 3), clase y operador
desarrollo c/c++, operador inevitable operador ( Parte 3), clase y operador Exponer exhaustivamente la asociación e implementación de clases y varios operadores, y dar demostraciones y códigos fuente completos. https://blog.csdn.net/py8105/article/details/129490566 [4] desarrollo c/c++, operador operador inevitable (Parte 4), hacer un buen uso de los operadores
2.6 String y E/S de entrada y salida (6 artículos)
[1] Desarrollo C/C++, cadenas inevitables (Parte 1). Array de bytes
Desarrollo C/C++, cadenas inevitables (Parte 1).Byte array_c define byte arrays_py_free-IOT Intelligent Blog-CSDN Blog Desarrollo C/C++, cadenas inevitables (Parte 1).Array de bytes. La biblioteca estándar implementa la función de cadena principalmente a través de la plantilla de clase std::basic_string similar al contenedor std::vector, que proporciona clases especializadas para varios tipos de caracteres, como usar std::string = std:: basic_string; La publicación del blog también expone std::basic_string—_view, cadena de bytes terminada en nulo, cadena ancha terminada en nulo, cadena multibyte terminada en nulo y otros conjuntos de funciones, y brinda un código de demostración. https://blog.csdn.net/py8105/article/details/129763021 [2] Desarrollo C/C++, cadenas inevitables (Parte 2) Funciones de procesamiento de caracteres y cadenas STL
Desarrollo C/C++, cadenas inevitables (Parte 2) Cadenas STL y funciones de procesamiento de caracteres_stl flipping strings_py_free-IOT Blog inteligente-CSDN Blog Desarrollo C/ C++, cadenas inevitables (Parte 2) Procesamiento de caracteres STL, presenta punteros de caracteres, matrices de caracteres y sus diferencias, presenta el conjunto de funciones de procesamiento de cadenas proporcionado por la biblioteca estándar, el conjunto de funciones de procesamiento de caracteres y la clase personalizada MyString demuestra cómo usar estos conjuntos de funciones y brinda el código fuente de demostración. https://blog.csdn.net/py8105/article/details/129776842 [3] Desarrollo C/C++, entrada/salida inevitable de E/S (Parte 1). Procesamiento de E/S de flujo laminar del dispositivo
Desarrollo de C/C++, entrada/salida de E/S inevitable (parte 1). Procesamiento de E/S laminar de dispositivo_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129795505 [4] Desarrollo C/C++, entrada/salida inevitable de E/S (Parte 2). Procesamiento de E/S de flujo de archivos
Desarrollo de C/C++, entrada/salida de E/S inevitable (Parte 2).Procesamiento de E/S de flujo de archivos_py_free-IOT Blog inteligente-CSDN Blog Desarrollo de C/C++, entrada/salida de E/S inevitable (Parte 2).Procesamiento de E/S de flujo de archivos, introduce el formato de archivo , gestión de formato, estado de flujo, implementación y gestión de búfer, entrada y salida formateada, entrada y salida sin formato de las tres clases de E/S de flujo de archivos de fstream, ofstream e ifstream, y proporciona un código de demostración completo. https://blog.csdn.net/py8105/article/details/129809162 [5] Desarrollo C/C++, entrada/salida inevitable de E/S (Parte 3) Flujo de cadenas (flujo de memoria) Procesamiento de E/S
Desarrollo C/C++, inevitable entrada/salida de E/S (Parte 3) Flujo de cadenas (flujo de memoria) Procesamiento de E/S Salida (Parte 3) Flujo de cadenas (flujo de memoria) Procesamiento de E/S, introduce el sistema de herencia, modo de búfer, formato abierto, desarrollo y la aplicación de la serie stringstream de stringstream/istringstream/ostringstream, y proporciona un código fuente de demostración completo. https://blog.csdn.net/py8105/article/details/129830327 [6] Desarrollo C/C++, entrada/salida inevitable de E/S (Parte 4). Breve descripción de la implementación de c
2.7 Multihilo y corrutinas (6 artículos)
[1] Desarrollo C/C++, subprocesos múltiples inevitables (Parte 1). La programación concurrente multiplataforma está muy atrasada
Desarrollo de C/C++, subprocesos múltiples inevitables (Parte 1). La programación concurrente multiplataforma está muy atrasada La programación concurrente está muy atrasada, presenta cómo construir un compilador que admita c ++ 11 y superior, y explica el contenido Función /c++ pthread establecida antes del estándar c++11 y después del estándar c++11 Diferentes aplicaciones y casos de clase de subprocesos para programación multiproceso, y expone la clase std::jthread propuesta por el estándar c++20. https://blog.csdn.net/py8105/article/details/129278973 [2] Desarrollo C/C++, subprocesos múltiples inevitables (Parte 2).thread y su biblioteca de soporte
Desarrollo C/C++, subprocesos múltiples inevitables (Parte 2). El subproceso y su biblioteca de soporte Biblioteca https://blog.csdn.net/py8105/article/details/129305084 [3] Desarrollo C/C++, subprocesos múltiples inevitables (Parte 3). Coroutines y sus bibliotecas de soporte
Desarrollo C/C++, subprocesos múltiples inevitables (Parte 3) Coroutine y su biblioteca de soporte_c coroutine library_py_free-IOT Blog inteligente-CSDN Blog Desarrollo C/C++, subprocesos múltiples inevitables (Parte 3) Coroutines y sus bibliotecas de soporte, introduciendo los diversos tipos relacionados en la biblioteca de soporte de rutinas del estándar c++20, y explicando el tiempo de compilación y el soporte de tiempo de ejecución de las corrutinas que proporcionan. Profundice en la aplicación de las palabras clave coroutine handle, coroutine awaitable body, coroutine sin operación y co_await, co_yield, co_return y verifique la aplicabilidad a través de pruebas de código fuente. https://blog.csdn.net/py8105/article/details/129336892 [4] Desarrollo C/C++, subprocesos múltiples inevitables (Parte 4). La maravillosa colisión de subprocesos y funciones
Desarrollo C/C++, subprocesos múltiples inevitables (Parte 4) La maravillosa colisión entre subprocesos y funciones También describe con más detalle cómo el envoltorio de reenvío de funciones std::bind combina funciones de miembros de clase, operadores, funciones de miembros de objetos anidados, etc. con subprocesos de subprocesos para implementar hábilmente la lógica de subprocesos múltiples. Proporcione información de demostración completa y código fuente. https://blog.csdn.net/py8105/article/details/129345145 [5] Desarrollo C/C++, subprocesos múltiples inevitables (Parte 5). Realice su propia clase de encapsulación de subprocesos
Desarrollo C/C++, subprocesos múltiples inevitables (Parte 5) Realice su propia encapsulación de subprocesos class_c++ clase de subprocesos encapsulation_py_free-IOT Blog inteligente-CSDN Blog Desarrollo C/C++, subprocesos múltiples inevitables (Parte 4) Implemente su propia clase de encapsulación de subprocesos, cómo encapsular clase de subprocesos basada en pthread_t de c++98, cómo encapsular la clase de subprocesos basada en std::thread de la biblioteca estándar de c++11 y mantenerla coherente con la versión de c++98, y finalmente combinar las dos versiones de la clase de subproceso en una versión de subproceso mythread, y proporcione el proceso de implementación, los resultados de la demostración y el código fuente. https://blog.csdn.net/py8105/article/details/129363133 [6] Desarrollo C/C++, subprocesos múltiples inevitables (Parte 6). Clase de encapsulación de grupo de subprocesos
2.8 Macros y aserciones (2 artículos)
[1] desarrollo c/c++, casos de uso inevitables de definiciones de macros
Desarrollo de C/c ++, caso de uso de definición de macro inevitable_py_free- IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/128969681 [2] Desarrollo de C/C++, afirmación de c/c++ ( aserción de preprocesamiento, aserción de compilación, aserción en ejecución)
3. Casos prácticos e índice de publicaciones en el blog
3.1 Diseño de comunicación (8 artículos)
[1] Desarrollo C/C++, implementación de comunicación UDP multicast (c++)
Desarrollo de C/C++, implementación de comunicación de multidifusión udp (c++)_py_free-IOT Intelligent Blog-CSDN blog Código fuente del caso de implementación de modo de multidifusión UDP https://blog.csdn.net/py8105/article/details/100180383 【2】 C/C++ desarrollo, utilizando epoll para crear su propio servicio en segundo plano, para lograr la comunicación de red con cada cliente (incluido el código de muestra)
Desarrollo C/C++, use epoll para crear su propio servicio en segundo plano, realice la comunicación de red con cada cliente (incluido el código de muestra) https ://blog.csdn.net/py8105/article/details/126970247 [3] Desarrollo C/C++, basado en el módulo de servicio de comunicación tcp-socket de epoll
Desarrollo C/C++, servicio de comunicación tcp-socket basado en epoll module_epoll_py_free en c++ windows, por lo que es necesario reducir la dependencia de la biblioteca de terceros.Dado que la comunicación tcp-socket original llama a la biblioteca de terceros, voy a escribir un módulo de servicio para el proyecto de código abierto que satisfaga brevemente las necesidades del proyecto. Dado que el servidor necesita personalizar los requisitos de comunicación de enlace descendente para cada cliente, se utiliza epoll para conocer claramente el manejo de la comunicación específica. https://blog.csdn.net/py8105/article/details/105973950 [4] c/c++ desarrollo, c++ inevitable caso de desarrollo de comunicación TCP/Socket
desarrollo c/c++, c++ inevitable caso práctico de desarrollo de comunicación TCP/Socket_c++ tcp library_py_free-IOT Intelligent Blog-CSDN Blog desarrollo c/c++, c++ inevitable caso práctico de desarrollo de comunicación TCP/Socket, Guía paso a paso, cómo desarrollar un TCP/Socket programa de servicio de comunicación, cómo realizar el soporte multicliente, cómo proporcionar eficiencia de comunicación, cómo codificar y decodificar y cómo realizar la transmisión de datos de bloques estructurados, etc., y proporcionar el código fuente completo para que todos lo aprendan. https://blog.csdn.net/py8105/article/details/128903850 [5] desarrollo c/c++, refactorización de código inevitable (basado en el caso de desarrollo de comunicación TCP/Socket anterior)
Desarrollo c/c++, práctica inevitable de refactorización de código (basado en el caso anterior de desarrollo de comunicación TCP/Socket)_c ++ code refactoring_py_free-IOT Intelligent Blog-CSDN Blog https:/ /blog.csdn.net/py8105/article/details/128933842 [6] Desarrollo C/C++, comunicación IoT: cómo diseñar brevemente un protocolo de aplicación empresarial basado en TCP/IP (caso c++)
Desarrollo C/C++, comunicación IoT: cómo diseñar brevemente un protocolo de aplicación empresarial basado en TCP/IP (caso c++)_c desarrollo de protocolo de red cómo diseñar_py_free-IOT Intelligent Blog-CSDN Blog Cómo diseñar brevemente un protocolo de aplicación empresarial basado en TCP / IP (caso c++) https://blog.csdn.net/py8105/article/details/126749510 [7] Desarrollo C/C++, ejemplo de comunicación de interfaz serial asíncrona (uart)
Desarrollo C/C++, ejemplo de comunicación de interfaz serial asíncrona (uart) Sin embargo, al realizar la comunicación serial de arm recientemente, descubrí que ctb aún es un poco complicado, así que pensé en construir una interfaz de comunicación serial relativamente simple, que depende principalmente de termios.h de linux. La estructura de termios es una interfaz estándar definida en la especificación POSIX. Al configurar mediante el uso de valores y llamadas a funciones en estructuras de datos de tipo termios, puede controlar la interfaz de la terminal. Usted mismo puede solicitar más descripciones... https://blog.csdn.net/py8105/article/details/105813168 [8] Desarrollo C/C++, comunicación de subprocesos c++: creación de un canal alternativo de transmisión de datos entre subprocesos
3.2 Monitoreo de recursos (6 artículos)
【1】Desarrollo C/C++, crear restricciones de licencia de software basadas en disco o tarjeta de red (c++)
Desarrollo C/C++, cree restricciones de licencia de software basadas en disco o tarjeta de red (c++)_c++ license_py_free-IOT Intelligent Blog-CSDN Blog Desarrollo C/C++, cree restricciones de licencia de software basadas en disco o tarjeta de red (c++), cree software basado en disco o tarjeta de red El método de licencia adopta el cifrado simétrico, es decir, el cifrado y el descifrado usan la misma clave, y el algoritmo de cifrado es autodefinido, y el software tiene derechos de autor para que solo pueda ejecutarse en una máquina adecuada. https://blog.csdn.net/py8105/article/details/90229088 [2] c/c++ realiza la adquisición de datos estadísticos de cada disco bajo Linux
c/c++ realiza la adquisición de datos estadísticos de cada disco bajo la descripción de Linux, lee la información de datos requerida de él. https://blog.csdn.net/py8105/article/details/127144417 [3] c/c++ realiza la adquisición de varios datos de estadísticas de memoria en Linux
c/c++ realiza la adquisición de varios datos estadísticos de memoria bajo linux_linux obtiene parámetros de memoria c++_py_free identifique el formato del contenido y la descripción del campo del archivo y lea la información de datos requerida
c/c++ realiza la adquisición de cada información de estadísticas de la CPU en linux_linux obtiene los parámetros de la CPU . net/py8105/article/details/127141041 [5] c/c++ implementa Linux La siguiente captura de tráfico de red
c/c++ realiza la captura de varios tráficos de red bajo Linux . net/py8105/article/details/127135477 【6】C/C++ Development, cómo c/c++ se da cuenta del caso de administrar sus propios archivos de registro de acuerdo con el espacio en disco
3.3 Interfaz de servicio (10 artículos)
【1】desarrollo c/c++, caso de desarrollo de acceso a archivos inevitable
desarrollo c/c++, caso de desarrollo de acceso a archivos inevitable_py_free-IOT Intelligent Blog- CSDN fgets, etc., cree un módulo de E/S de archivo, realice lectura y escritura de archivos, lectura y escritura de contenido de línea, segmentación de contenido de línea y funciones de E/S como creación, eliminación, cambio de nombre y verificación de directorios de archivos y nombres de archivos. muestra la aplicación del módulo de archivo IO https://blog.csdn.net/py8105/article/details/128959951 [2] Desarrollo C/C++, implementación de la interfaz de correo C++ basada en el protocolo SMTP
Desarrollo C/C++, implementación de la interfaz de correo C++ basada en el protocolo SMTP_vs envío y recepción de correo c++_py_free-IOT Intelligent Blog-CSDN blog realiza el envío de un informe de estadísticas de programación en tiempo real a los clientes por correo electrónico y extrae una interfaz de correo C++ independiente, que es conveniente para su uso posterior, y también se comparte para que los amigos interesados lo usen como referencia. https://blog.csdn.net/py8105/article/details/103837469 [3] Desarrollo C/C++, basado en el código fuente MQTT estándar c puro de IBM, para lograr acceso en lenguaje C puro al caso de desarrollo de la plataforma IoT en la nube de Alibaba
Desarrollo C/C++, basado en el código fuente MQTT estándar c puro de IBM, para lograr acceso en lenguaje C puro a la plataforma IoT de Alibaba Cloud La biblioteca estándar MQTT se puede migrar a STM32, preste atención a mi publicación de blog de seguimiento. https://blog.csdn.net/py8105/article/details/128341479 [4] Desarrollo de C/C++, implementación de C++ de la interfaz del servicio de SMS en la nube de Alibaba
Desarrollo C/C ++, implementación C++ del servicio Alibaba Cloud SMS interface_c ++ Alibaba Cloud_py_free-IOT Smart Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/80089001 [5] qt5.8 (c++) implementa la interfaz de nube de reconocimiento facial de Alibaba Cloud
qt5.8 (c++) implementa la interfaz de nube de reconocimiento facial de Alibaba Cloud_Aliyun interfaz de reconocimiento facial_py_free-IOT Intelligent Blog-CSDN Blog Interfaz API de reconocimiento facial de Alibaba Cloud para obtener información de resultados de reconocimiento de imágenes. https://blog.csdn.net/py8105/article/details/81452708 [6] Desarrollado en C/C++, utilizando la biblioteca http de acl_master para agregar la captura de datos de información de pronóstico del tiempo
Desarrollo C/C++, usando la biblioteca http de acl_master para agregar datos de información de pronóstico del tiempo captura de información de datos agregados
https://blog.csdn.net/py8105/article/details/79510873 https://blog.csdn.net/py8105/article/details/79510873 [8] Desarrollo C/C++, servidor c++ de gsoap e implementación de cliente Java
Desarrollo C/C++, implementación del servidor c++ de gsoap y cliente Java [9] Desarrollo C/C++, realización del empaquetado secundario de la biblioteca estática C++ para llamadas Java
Desarrollo de C/C++, implementar el empaquetado secundario de la biblioteca estática de C++ para el empaquetado del proyecto javacalling_c El uso de JNI puede usar fácilmente nuestro programa Java para llamar al programa C/C++ https://blog.csdn.net/py8105/article/details/69788513 [10] Desarrollo C/C++, basado en el código fuente de cectd para crear una base de datos etcd win/ Paquete c-SDK compilado estáticamente de Linux
3.4 Sistema de registro (3 artículos)
[1] Desarrollo C/C++, use la función de definición de macros y reemplazo de macros en lenguaje c para crear su propia salida de registro
Desarrollo C/C++, use la función de definición de macros y reemplazo de macros en lenguaje C para crear su propia salida de registro en C++ para construir su propio sistema de registro pequeño
Desarrollo C/C++, cómo usar VA_LIST y el modo monomer en c++ para crear su propio sistema de registro pequeño Diseñe un CLogger de clase única, que tenga capacidades de subprocesos independientes y use una cola para recibir registros de cada subproceso y cada módulo funcional. La instancia de CLogger es responsable de agregar registros a la cola. Después de agregar información adicional, se detalla en el archivo. Para distinguir los eventos de registro, los tipos de registro se crean por enumeración; la operación de registro es un proceso a largo plazo y es imposible almacenarlos todos en un archivo de registro, así que especifique un directorio de archivos y guárdelo por día. https: //blog.csdn .net/py8105/article/details/126930886 [3] Desarrollo de C/C++, cómo c/c++ administra sus propios archivos de registro según el caso de espacio en disco
3.5 Servicios de ingeniería (9 artículos)
[1] Desarrollo en C/C++, cómo crear, compilar e implementar servicios en segundo plano en Win/Linux con código C++ y administrar otros servicios
Desarrollo C/C++, cómo implementar código c++ para crear, compilar e implementar servicios en segundo plano en win/ linux y administrar otros servicios https://blog.csdn.net/py8105 /article/details/126642124 [2] Cómo implementar la carga dinámica de la biblioteca dinámica en c/c++ (incluido el código de muestra del proyecto completo)
Desarrollo C/C++, use svn para administrar la información de la versión del software_$wcnow_py_free-IOT Intelligent Blog-CSDN Blog Desarrollo C/C++, use svn para administrar la información de la versión del software, genere automáticamente la información de la versión y llame a https://blog.csdn.net / py8105/article/details/69211071 [4] Desarrollo C/C++, crear restricciones de licencia de software basadas en disco o tarjeta de red (c++)
Desarrollo C/C++, cree restricciones de licencia de software basadas en disco o tarjeta de red (c++)_c++ license_py_free-IOT Intelligent Blog-CSDN Blog Desarrollo C/C++, cree restricciones de licencia de software basadas en disco o tarjeta de red (c++), cree software basado en disco o tarjeta de red El método de licencia adopta el cifrado simétrico, es decir, el cifrado y el descifrado usan la misma clave, y el algoritmo de cifrado es autodefinido, y el software tiene derechos de autor para que solo pueda ejecutarse en una máquina adecuada. https://blog.csdn.net/py8105/article/details/90229088 [5] Desarrollo C/C++, aprendizaje de biblioteca de fórmulas de cálculo
Desarrollo C/C++, biblioteca de fórmulas de cálculo learning_muparser library_py_free-IOT Intelligent Blog-CSDN Blog analiza rápida y fácilmente expresiones matemáticas y realiza cálculos a través de la biblioteca de fórmulas de cálculo (muparser) https://blog.csdn.net/py8105/article/details/ 68954214 【6】Desarrollo C/C++, algoritmo mejorado de coincidencia de patrones BF
Desarrollo de C/C++, algoritmo mejorado de coincidencia de patrones BF_Reforma bf algoritmo_py_free-IOT Intelligent Blog-CSDN Blog El algoritmo BF es un algoritmo de coincidencia de patrones con retroceso.Si la marca del búfer ha coincidido, reducir el retroceso puede mejorar la eficiencia del tiempo. sacrificado , y las compensaciones deben ser consideradas en aplicaciones prácticas
Desarrollo C/C++, función hash y datos de estructura jerárquica_Estructura jerárquica del grupo de funciones hash algoritmo hash iterativo_py_free-IOT Intelligent Blog-CSDN Blog Desarrollo C/C++, función hash y datos de estructura jerárquica, utilizando hash La lista reorganiza la estructura de árbol para que sea más flat https://blog.csdn.net/py8105/article/details/68952202 [8] Desarrollo C/C++, programa de protección ocular para uso informático
Desarrollo C/C++, programa de protección ocular para el uso de la computadora_cómo escribir un programa de protección ocular_py_free-IOT Smart Blog-CSDN Blog utiliza un pequeño servicio ganador para bloquear periódicamente la pantalla o llamar al protector de pantalla para recordar el tiempo de uso de la computadora https://blog. csdn.net/py8105/article/details/68955538 [9] Una plataforma de monitoreo de IoT basada en Zero-Ice