【问题标题】:Why do I get a implicit declaration of function 'cambiar_color' is invalid in C99 error为什么我在 C99 错误中得到函数“cambiar_color”的隐式声明无效
【发布时间】:2020-11-19 12:37:35
【问题描述】:

所以我包含在我的标题中

#include <stdio.h>
#include "colores.h"

...

    do{
        tablero[gusano.posFila][gusano.posColumna] = '@';
        for(int i=0; i<FILAS; i++){
            for(int j=0; j<COL; j++){
                if(tablero[i][j] == '#')
                    cambiar_color(WHITE);
                else if(tablero[i][j] == '@')
                    cambiar_color(GREEN);
                else if(tablero[i][j] == '%')
                    cambiar_color(RED);
                printf("%c", tablero[i][j]);
            }
            printf("\n");
        }
        usleep(1000000);
    }while(tablero[gusano.posFila][gusano.posColumna] != '#');
    
    return 0;
}

这部分是我写任何与 colores.h 标头相关的内容的唯一部分

我使用 gcc myfile.c colores.c -o myfile 编译了程序,但我得到了这个错误。 (我在程序中以cambiar_color(WHITE)为例

【问题讨论】:

  • 你得到这个是因为编译器找不到函数声明。如果您需要帮助找到错误的根源,您必须发布实际代码。
  • @Lundin 刚刚编辑了它,谢谢!
  • 我的意思是声明函数cambiar_color的代码,据说在colores.h中?
  • cambiar_color 函数在任何地方都没有声明。你也可以写FooBar(RED),结果是一样的。

标签: c compilation header c99


【解决方案1】:

您收到一个隐式声明错误,因为您的程序中没有声明 cambiar_color()。检查你的头文件中函数的声明,如果没有声明,添加一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 2013-11-28
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多