[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