La Red de Conocimientos Pedagógicos - Currículum vitae - ¿Cómo utiliza Discuz x2 la sintaxis de plantilla para llamar al valor de un campo en la base de datos?

¿Cómo utiliza Discuz x2 la sintaxis de plantilla para llamar al valor de un campo en la base de datos?

1. Para funciones que no son miembros de clase en C, simplemente agregue "C" externa antes de la declaración de la función, generalmente en el archivo de encabezado. Por supuesto, también puede juntar declaraciones y definiciones de funciones en cpp. Si no hay ninguna declaración, puede agregar "c" externa directamente antes de la definición.

2. Para funciones miembro de la clase C, necesita crear otro archivo cpp para encapsular la función que se llamará.

Para ver ejemplos de los dos elementos anteriores, consulte el artículo sobre cómo llamar al código C en C.

Para implementar código que llama a C en C, las operaciones específicas son las siguientes:

Para el código de función en C, modifique el archivo de encabezado del código C e inclúyalo en el código C. Agregue el código Extern "C" a la declaración, o vuelva a declarar la función C en el código C y agregue el encabezado Extern "C" al volver a declarar.

De la explicación anterior, entiendo que agregar el encabezado "C" externo debe agregarse al archivo de código C para que funcione.

Analicemos la razón esencial de este fenómeno:

El compilador de C compila funciones sin información del tipo de función, solo nombres de símbolos de función. Por ejemplo, el compilador de C compila la función int a (float x) en un símbolo como _a. El conector C puede conectarse correctamente siempre que encuentre el símbolo que llama a la función. Se supone que la información del tipo de parámetro es correcta, lo cual es un defecto del vinculador del compilador de C. Para implementar la sobrecarga de funciones, el compilador de C traerá la información del tipo de la función al compilar. Por ejemplo, podría compilar la función A anterior en un símbolo, como _a_float. Para implementar la sobrecarga, tenga en cuenta que todavía no transporta información del valor de retorno. Esta es una de las razones por las que C no admite el uso del valor de retorno de una función para distinguir la sobrecarga de funciones. Por supuesto, la forma en que los usuarios de funciones manejan los valores de retorno de las funciones (como ignorarlos) también es una razón importante.

Con base en lo anterior, cuando C llama a C, la llamada a la clase C debe encapsularse en una función C para la llamada C, por lo que la función del "C" externo es informar al compilador. esto, y luego use la compilación del lenguaje C para conectar la función encapsulada (generalmente la función encapsulada es compilada por el compilador de C usando C. Después de usar "C" externo, el compilador compila la interfaz encapsulada en modo C. Por supuesto, para el lenguaje C parte: la persona que llama, aún sigue la compilación del lenguaje c; después de compilar la parte de la interfaz C y la parte C por separado, puede llamar a C después de conectarlas. Por el contrario, cuando C llama a una función C, la función externa "C". es dejar que el conector C lo encuentre en el modo C. El símbolo de la función de llamada, es decir, use _a en lugar de _a_float para encontrar la función de llamada