我使用了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');
}