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