Red de conocimiento informático - Problemas con los teléfonos móviles - Programación de funciones de intercambio

Programación de funciones de intercambio

No sé los tipos de las dos variables que desea intercambiar, así que aquí hay un ejemplo de intercambio de datos enteros. La siguiente función de intercambio implementa la función de intercambiar los valores de dos variables enteras:#Contiene? ltstdio.h gt

//?Intercambia el valor del puntero dado en una variable entera.

//?Parámetros:

//a? - gt;? Puntero a la primera variable

//b? - gt;? ¿El puntero a la segunda variable

no es válido? intercambiar(int*?a,?int?*?b);

int? principal(int?argc,?int?argv)

{

int? ¿respuesta? =?3,?b? =?5;

Printf_s("Antes del intercambio: a?=?d,?b?=?d\n ", a,?b);

Intercambio(amp 1 .? ampb);

Printf_s("Después del intercambio: a?=?d,?b?=?d\n ", 1.?b);

¿Devolver? 0;

}

//?Intercambia el valor del puntero dado a una variable entera.

//?Parámetros:

//a? - gt;? Puntero a la primera variable

//b? - gt;? ¿El puntero a la segunda variable

no es válido? swap(int*?一,?int*?b)

{

//?Declara una variable temporal y guarda el primer puntero a la variable.

//¿El valor de?

//?¿Entre ellos? *¿a? ¿Lo has sacado? ¿respuesta? El puntero apunta al valor de la variable.

int? ¿Trabajador temporal? =?* a;

//?Voluntad. ¿b? ¿Se asigna el valor señalado por el puntero? ¿respuesta? ¿Puntero variable

(*a)? =?(* b);

//?¿Habrá variables temporales? ¿Trabajador temporal? ¿Guardado en? ¿respuesta? El puntero apunta a la tarea.

//?b? La variable señalada por el puntero.

(*b)? =?Temperature;

}Los resultados de ejecución del código anterior son los siguientes:

El siguiente código implementa la función de usar definiciones de macros como plantillas para declarar diferentes tipos de funciones de intercambio.

Tome la declaración de doble y flotante como ejemplo:

#Contains? ltstdio.hgt?

//?¿Declarar una plantilla de código de función, referencia lógica? swap(int*?一,?int*?b)

#Definición? ¿DEF_SWAP_FUNC(tipo)? ¿Vacío? swap_##Tipo(Tipo*? Uno,? Tipo*? b)? \

{?\

¿Tipo? ¿Trabajador temporal? =?(*a);? \

(*a)? =?(*b);? \

(*b)? =?Temperatura;? \

}?

//?¿Declarar e implementar una plantilla? ¿Doble? Escriba función de intercambio de variables, ¿nombre de la función? swap_double

Define_swap_FUNC(double)

//? ¿Declarar e implementar una plantilla? ¿flotar? Escriba función de intercambio de variables, ¿nombre de la función? EXCHANGE_FLOAT

DEFINE_EXCHANGE_FUNC(FLOAT)

int? main(int? argc,? int? argv)

{

//?Double? Escriba Intercambio de datos

¿Doble? ¿Papá? =?5.6,?db? =?3.5;

printf_s("¿doble? antes de la comunicación: da?=?lf,db?=?lf\n ",da,?db);

swap _ double (amp;da,? ampdb);

printf_s("¿doble? Después de la comunicación: da?=?lf,db?=?lf\n ",da,?db);

//?¿Flotante? Tipo intercambio de datos

¿Flotador? ¿Ley? =?3.4,?fb? =?6.8;

printf_s("¿flotar? Antes de la comunicación: fa?=?f,?fb?=?f\n ",fa,?FB);

swap_float. Ley,? ampFB);

printf_s("¿float? Antes de la comunicación: fa?=?f,?fb?=?f\n ", método,?FB);

¿Regresar? 0;

}Los resultados de la ejecución son los siguientes: