Doxygen仅检测int main()函数

时间:2017-10-05 00:31:12

标签: c doxygen

我想记录一个void函数,但doxygen不会识别它。它只识别int main()函数。我不知道我做错了什么。

请检查以下代码。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>



/**
 * @file main.c
 * @author Reymi Chacon Soto 
 * @date 3 de octubre 2017 
 * @brief El main file del ejercicio 3
 * 
 * \mainpage Descripcion 
 * Programa para encontrar la solucion de una ecuacion cuadratica. EL usuario ingresa las constantes de la ecuacion
 * 
 * \section libreria_sec Librerias usadas en este proyecto
 * \subsection libreria1 Math.h
 * Esta libreria permite usar la funcion sqrt(); para obtener raiz cuadrada
 */



int main(){

    printf("Se va a trabajar con la ecuacion de la forma ax^2+bx+c\n\n" );



    float a,b,c,x_1,x_2,x_0;

    printf("Ingrese el valor de la constante a: ");
    scanf("%f", &a);

    printf("Ingrese el valor de la constante b: ");
    scanf("%f", &b);

    printf("Ingrese el valor de la constante c: ");
    scanf("%f", &c);



void cuadratica(a,b,c){

/**
 * @brief Funcion que se encarga de encontrar las soluciones de una ecuacion cuadratica segun los parametros
 * ingresados por el usuario.
 * @param a,b,c Constantes de la ecuacion cuadratica
 */    

    double dis = b*b-4*a*c; 

    double sqr = sqrt(dis);


    if(dis<0){

        printf("No tiene solucion en los numeros reales\n");


    }



    if(dis==0){

        x_0= -b/(2*a);

        printf("La solucion es %f\n", x_0);


    }

    if(dis>0){

       x_1= (-b + sqr)/(2*a); 
       x_2= (-b - sqr)/(2*a); 

       printf("Las soluciones son %f y %f\n", x_1, x_2);

    }

}

cuadratica(a,b,c);

}

2 个答案:

答案 0 :(得分:1)

您无法在函数内声明函数。这不是OOP,每个函数都是一个且只有一个函数。

试试这个:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void cuadratica(a,b,c);


/**
 * @file main.c
 * @author Reymi Chacon Soto 
 * @date 3 de octubre 2017 
 * @brief El main file del ejercicio 3
 * 
 * \mainpage Descripcion 
 * Programa para encontrar la solucion de una ecuacion cuadratica. EL usuario ingresa las constantes de la ecuacion
 * 
 * \section libreria_sec Librerias usadas en este proyecto
 * \subsection libreria1 Math.h
 * Esta libreria permite usar la funcion sqrt(); para obtener raiz cuadrada
 */



int main(void){

    printf("Se va a trabajar con la ecuacion de la forma ax^2+bx+c\n\n" );



    float a,b,c,x_1,x_2,x_0;

    printf("Ingrese el valor de la constante a: ");
    scanf("%f", &a);

    printf("Ingrese el valor de la constante b: ");
    scanf("%f", &b);

    printf("Ingrese el valor de la constante c: ");
    scanf("%f", &c);

    cuadratica(a,b,c);
    return (0);
}

void cuadratica(a,b,c){

/**
 * @brief Funcion que se encarga de encontrar las soluciones de una ecuacion cuadratica segun los parametros
 * ingresados por el usuario.
 * @param a,b,c Constantes de la ecuacion cuadratica
 */    

    double dis = b*b-4*a*c; 

    double sqr = sqrt(dis);


    if(dis<0){

        printf("No tiene solucion en los numeros reales\n");


    }



    if(dis==0){

        x_0= -b/(2*a);

        printf("La solucion es %f\n", x_0);


    }

    if(dis>0){

       x_1= (-b + sqr)/(2*a); 
       x_2= (-b - sqr)/(2*a); 

       printf("Las soluciones son %f y %f\n", x_1, x_2);

    }

}

答案 1 :(得分:1)

在C中,你不能在另一个函数中声明一个函数。

尝试单独声明您的功能

void cuadratica(a,b,c){
    // Your method
}

int main(){

    printf("Se va a trabajar con la ecuacion de la forma ax^2+bx+c\n\n" );

    float a,b,c,x_1,x_2,x_0;

    printf("Ingrese el valor de la constante a: ");
    scanf("%f", &a);

    printf("Ingrese el valor de la constante b: ");
    scanf("%f", &b);

    printf("Ingrese el valor de la constante c: ");
    scanf("%f", &c);

    cuadratica(a,b,c);
    return 0;
}

如果您想将cuadratica()功能放在main()下的文件中,则必须先将其声明为:

void cuadratica(float, float, float);

int main(){
   // Method
}

void cuadratica(a, b, c){
   // Method
}