[C con Clase] Usar Función Estilo C en Programa C++.
Juan Antonio
jalr43 en hotmail.com
Vie Ene 12 02:29:09 CET 2007
Hola,
tengo la siguiente función en el fichero func0201.c:
/* Función estilo C */
#include <stdio.h>
void Cuadrados(int n[], int max)
{
int i;
printf("\nNúmero Cuadrado\n");
for(i = 0; i < max; i++)
printf(" %d %d\n", n[i], n[i]*n[i]);
}
y en prog0201.cpp:
#include <cstdlib>
#include <iostream>
using namespace std;
// Prototipo de la función C
extern "C" void Cuadrados(int n[], int);
int main(int argc, char *argv[])
{
int nro[20], i = 0;
// Leer números de la entrada estándar
cout << "Para finalizar introduzca el carácter EOF\n\n";
cout << "Introduzca números\n";
while(i < 20 && cin >> nro[i++]);
// Visualizar los números y sus cuadrados
// utilizando la función "cuadrados" estilo C
Cuadrados(nro, i-1);
cout << "\nProceso finalizado\n";
system("PAUSE");
return EXIT_SUCCESS;
}
He realizado un proyecto de consola en C++ con el Dev-C++ y me lanza el
siguiente error:
[Linker error] undefined reference to `Cuadrados'
Supuestamente al usar una función al estilo de C debería usar extern "C"
delante del prototipo. Ya he comprobado que sin usarlo funciona
perfectamente. Lo mismo necesito configurar algo en las opciones del
proyecto para poder usar extern??
Un saludo,
Juan Antonio.
Más información sobre la lista de distribución Cconclase