Ошибка - функция не может быть перегружена - C (СИ)
Формулировка задачи:
Добрый вечер! Первый раз пишу на этом форуме, я новичок, так что как можно понятнее объясняйтесь, если можно Дана вот такая задача: есть структура "автосервис", первые шаги - это ввести и вывести такие данные "регистрационный номер автомобиля, марка, пробег, мастер, выполнивший ремонт, сумма ремонта".
Вроде бы постаралась сделать всё правильно, но выдало такую ошибку - error C2731: main: функция не может быть перегружена. Может кто-нибудь поймёт в чём дело? Заранее благодарна всем, кто поможет
#include <stdio.h>
#include <string.h>
#include <conio.h>
typedef struct
{
char reg_nom [30];
char marka[30];
char probeg[30];
char vypoln_rem[30];
char summa_rem[30];
}avtser;
int main (avtser avtser[]);
int menu ();
void vvod (avtser avtser[]);
void vyvod (avtser avtser[]);
int i;
int main () {
avtser NumAvtser[5];
while (1){
switch (menu()) {
case '1': vvod(NumAvtser);
break;
case '4': vyvod(NumAvtser);
break;
}
}
}
void vvod (avtser avtser[])
{ for (i=0; i<5; i++)
{
printf ("Vvedite marku \n");
gets_s (avtser[i].marka);
printf ("Vvedite mastera, vypoln remont \n");
gets_s (avtser[i].vypoln_rem);
printf ("Vvedite summu remonta \n");
gets_s (avtser[i].summa_rem);
printf ("Vvedite registr nomer \n");
gets_s (avtser[i].reg_nom);
printf ("Vvedite probeg \n");
gets_s (avtser[i].probeg);
}
}
void vyvod (avtser avtser[]) {
int i;
for (i=0; i<5; i++) {
printf ("marka - %s\nmaster, vypoln remont - %s\nsumma remonta - %s\nregistr nomer - %s\nprobeg - %s\n", avtser[i].marka, avtser[i].vypoln_rem, avtser[i].summa_rem, avtser[i].reg_nom, avtser[i].probeg);
}
}Решение задачи: «Ошибка - функция не может быть перегружена»
textual
Листинг программы
//int __stdcall WINAPI WinMain
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
WORD Channel = 0;
WORD rgValues[32] = {0};
SlotInfo MySlotInfo ={0};
WORD NewRangeTab[12] = {0}; //APAX 5017 is a 12 channels AI module
BYTE rgChannelStatus[32] = {0};
int i = 0;
DWORD dwMask = 0x0;
DWORD dwIntegration = 0;
WORD Timeout = 0;
LONG Result = 0;
wprintf(L"Slot ID setting in this sample code is %d.\n", g_SlotOne);
if (ADV_SUCCESS == OpenLib() )
{
wprintf(L"\n*** Get module ID and current range setting ***\n");
//get module ID and current range setting
if (ERR_SUCCESS == SYS_GetSlotInfo(g_DriverHandle, g_SlotOne, &MySlotInfo) )
My_Show_SlotInfo(&MySlotInfo);
else
wprintf(L"Get slot information error.\n");
Sleep(100);
//Set inner timeout
wprintf(L"\n*** Set inner timeout ***\n");
Timeout = 1000;
Result = SYS_SetInnerTimeout(g_DriverHandle, Timeout);
if (ERR_SUCCESS == Result )
wprintf(L"Set integration time succeed, timeout = %d ms.\n", Timeout);
else
wprintf(L"Set integration time error, error code = %d.\n", Result);
//Set integration time
wprintf(L"\n*** Set integration time ***\n");
Result = AI_SetIntegrationTime(g_DriverHandle, g_SlotOne, dwIntegration);
if (ERR_SUCCESS == Result )
wprintf(L"Set integration time succeed.\n");
else
wprintf(L"Set integration time error, error code = %d.\n", Result);
Sleep(100);
//Get channel status
wprintf(L"\n*** Get channel status ***\n");
if (ERR_SUCCESS == AIO_GetChannelStatus(g_DriverHandle, g_SlotOne, rgChannelStatus) )
{
for (i=0; i<12; i++)
{
wprintf(L"Slot %d channel %d status is ", g_SlotOne, i);
switch(rgChannelStatus[i])
{
case 0:
wprintf(L"\"None\"\n");
break;
case 1:
wprintf(L"\"Normal\"\n");
break;
case 2:
wprintf(L"\"Over current\"\n");
break;
case 3:
wprintf(L"\"Under current\"\n");
break;
case 4:
wprintf(L"\"Burn out\"\n");
break;
case 5:
wprintf(L"\"Open loop\"\n");
break;
case 6:
wprintf(L"\"Not ready\"\n");
break;
default:
wprintf(L"\"Unknown\"\n");
break;
}
}
}
else
wprintf(L"Get Slot %d channel status error.\n", g_SlotOne);
Sleep(100);
wprintf(L"\n*** Set new range table ***\n");
NewRangeTab[0] = NEG_10_TO_10_V;
NewRangeTab[1] = ZERO_TO_20_MA;
NewRangeTab[2] = _4_TO_20_MA;
NewRangeTab[3] = NEG_1_TO_1_V;
NewRangeTab[4] = NEG_150_TO_150_MV;
NewRangeTab[5] = NEG_5_TO_5_V;
NewRangeTab[6] = NEG_150_TO_150_MV;
NewRangeTab[7] = NEG_10_TO_10_V;
NewRangeTab[8] = NEG_150_TO_150_MV;
NewRangeTab[9] = NEG_5_TO_5_V;
NewRangeTab[10] = _4_TO_20_MA;
NewRangeTab[11] = NEG_10_TO_10_V;
//Set range follow APAX 5017 range table setting
wprintf(L"Channel total = %d.\n", MySlotInfo.byChTotal);
if (ERR_SUCCESS == AIO_SetRanges(g_DriverHandle, g_SlotOne, MySlotInfo.byChTotal, NewRangeTab) )
{
if (ERR_SUCCESS == SYS_GetSlotInfo(g_DriverHandle, g_SlotOne, &MySlotInfo) )
{
My_Show_SlotInfo(&MySlotInfo);
}
else
wprintf(L"Get slot information error.\n");
}
else
{
DWORD ErrorCode = GetLastError();
wprintf(L"Set new range table error, error code = %x.\n", ErrorCode);
}
Sleep(100);
//Set channel mask
wprintf(L"\n*** Set channel mask ***\n");
dwMask = 0xFFFFFFFF; //enable all channel
if (ERR_SUCCESS == AI_SetChannelMask(g_DriverHandle, g_SlotOne, dwMask) )
{
for (i=0; i<12; i++)
{
if (dwMask & (0x01 << i) )
wprintf(L"Channel %d = Enable.\n", i);
else
wprintf(L"Channel %d = Disable.\n", i);
}
}
else
wprintf(L"Set channel mask error.\n");
Sleep(100);
//Get value (single channel)
wprintf(L"\nGet single channel value.\n");
rgValues[0] = 0x0;
Channel = 0;
if (ERR_SUCCESS == AIO_GetValue(g_DriverHandle, g_SlotOne, Channel, rgValues) )
Scale_RawData(&MySlotInfo, Channel, rgValues);
else
wprintf(L"Channel %d get value error.\n", Channel);
Sleep(100);
//Get value (multi channel)
wprintf(L"\nGet multi channels value.\n");
if (ERR_SUCCESS == AIO_GetValues(g_DriverHandle, g_SlotOne, rgValues) )
{
for (int Channel=0; Channel<MySlotInfo.byHwIoTotal_0; Channel++)
Scale_RawData(&MySlotInfo, Channel, rgValues);
}
else
wprintf(L"Get multi channels value error.\n");
}
else
{
wprintf(L"Open library fail.\n");
}
CloseLib();
wprintf(L"/*** END ***/ \n\n");
MessageBoxW(NULL,
_T("Close!"),
_T("End"),
MB_OK);
return 0;
}