dev C ++ Неопределенные ссылки?

Так что это часть моей программы, у меня проблемы с вызовом функций, и мне действительно нужна помощь. Это в основном, чтобы выбрать любую функцию и ввести данные и
позже распечатайте эти данные. Что я делаю не так? Пожалуйста, помогите, я продолжаю получать

«[Linker] ссылка на Customer_Record()'" , [Linker error] undefined reference to Car_Record()‘и «ld вернул 1 статус выхода»

 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>

void Customer_Record(), Car_Record();
int num;

struct Customer {
char customer_ID[20];
int license;
char address[20];
int phone;
char email[20];
} cust;

struct car {

int regno[20];
char model[20];
char colour[10];
} car;main() {
printf("               Enter 1 to go to Customer Record \n\n");
printf("               Enter 2 to go to Car Record \n\n");
scanf("%d", &num);
if (num = 1) {
Customer_Record();
} else if (num = 2) {
Car_Record();
} else {
printf("Invalid Number");
}

system("cls");

void Customer_Record(); {
printf("********CUSTOMER RECORD********"); /* accepts into*/
printf("\nEnter the name of the customer ");
scanf("%s", &cust.customer_ID);
printf("Enter the license number of the customer ");
scanf("%d", &cust.license);
printf("Enter the address of the customer ");
scanf("%s", &cust.address);
printf("Enter the cell phone number of the customer ");
scanf("%d", &cust.phone);
printf("Enter the email address of the customer ");
scanf("%s", &cust.email);
}

void Car_Record(); {
printf("********CAR RECORD********");
printf("\nEnter the car's registration number ");
scanf("%d", &car.regno);
printf("Enter the car's model ");
scanf("%s", &car.model);
printf("Enter the colour of the car ");
scanf("%s", &car.colour);
}
getchar();
getchar();
}

2

Решение

Не вкладывайте свои функции так. Определения Customer_Record() а также Car_Record() должно быть вне из main(), Вам нужно взять ; от определения этих функций тоже.

Попробуйте лучше отформатировать код — это очень поможет в долгосрочной перспективе.

6

Другие решения

  1. Вы пропускаете} в конце main, компилятор считает, что ваши объявления функций находятся внутри функции main.

  2. Удалите конечную точку с запятой из вашей функции. Пример:

    void Car_Record();
    {
    

    в

     void Car_Record()
    {
    

Эта точка с запятой не нужна.

2

Я составил список всех проблем с вашей программой. Вот:

  • Ваши заявления if используют назначение = оператор, когда они должны использовать оператор сравнения ==, Так, например, измените следующее:

    if (num = 1) {
    

    в

    if (num == 1) {
    

    Это также происходит в вашем else заявление также.

  • Также неправильно определять функции внутри main. Вы должны определить эти блоки вне основной пункт. Вы уже создали прототип функций выше main, теперь вы должны определить их ниже main. Кроме того, у вас не должно быть точки с запятой после списка параметров при определении функций; это синтаксически неправильно.

Следующий совет. Вы компилируете этот код как C ++, но он написан с использованием функций / заголовков C. Чтобы преобразовать его в C ++, сделайте следующие изменения:

  • Измените ваши заголовки: stdio.h, conio.h, stdlib.h; это все заголовки в стиле C. По сути, все заголовки, оканчивающиеся на «.h», являются заголовками в стиле C. C ++ имеет собственную библиотеку ввода / вывода, что делает его эквивалент C устаревшим. Вместо этого включите следующие заголовки:

    #include <iostream>
    #include <cstdlib>
    

    Я пропустил дополнительные заголовки, потому что кажется, что вы используете только printf/scanf а также system, эквивалент которого C ++ iostream а также cstdlib Заголовки уже обладает. Например, std::cout а также std::cin для iosteam. И эквивалент getchar is std :: cin.get () `.

  • Main возвращает int: В стандартном C ++ вы не можете исключить тип возвращаемого значения. Укажите тип возврата main как int, но вы не должны ставить return 0 в конце (это неявно).

Если вы хотите посмотреть функции и контейнеры C ++ (например, std::cout/std::cin), эта ссылка очень помогает

1
По вопросам рекламы [email protected]