Множественное определение функций - PullRequest
0 голосов
/ 25 апреля 2019

Я использую 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');
}
...