功能的多重定义

时间:2019-04-25 03:19:03

标签: c multiple-definition-error

我使用了1个头文件和2个代码文件。因为使用“ #ifdef _WIN32 ...”和“ #ifdef unix ...”,所以“多个定义...”功能之一是重复的。 我在“ limpaConsola”和“ menuInicial”中出现“多个定义...”错误。 怎么了?

kartHead.h

    #ifndef kartHead_H
        #define kartHead_H
        void limpaConsola(void);
        void menuInicial(char tipoMenu);
    #endif

kartFunc.c

    #include "kartHead.h"

    #ifdef _WIN32
        #include <windows.h>
        void limpaConsola(void) {
            HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
            COORD topLeft = {0, 0};
            DWORD dwCount, dwSize;
            CONSOLE_SCREEN_BUFFER_INFO csbi;
            GetConsoleScreenBufferInfo(hOutput, &csbi);
            dwSize = csbi.dwSize.X * csbi.dwSize.Y;
            FillConsoleOutputCharacter(hOutput, 0x20, dwSize, topLeft, &dwCount);
            FillConsoleOutputAttribute(hOutput, 0x07, dwSize, topLeft, &dwCount);
            SetConsoleCursorPosition(hOutput, topLeft);
        }
    #endif /* _WIN32 */

    #ifdef __unix__
        #include <stdio.h>
        void limpaConsola(void) {
            printf("\x1B[2J");
        }
    #endif /* __unix__ */

    #include <stdio.h>
    #include <stdbool.h>
    bool controlo;
    int opc;    

    void menuInicial(char tipoMenu){
        controlo=1;
        while(controlo){
            limpaConsola();
            ...
        }
    }

kart.c

#include "kartFunc.c"
void main()
{
    menuInicial('c');
}

0 个答案:

没有答案