#c #gcc #compilation
#c #gcc #Сборник
Вопрос:
#include <iostream>
#include <string>
using namespace std;
struct sotrudnik {
string name;
string speciality;
string razread;
int zarplata;
}
sotrudnik create(string n,string spec,string raz,int sal) {
sotrudnik temp;
temp.name=n;
temp.speciality=spec;
temp.razread=raz;
temp.zarplata=sal;
return temp;
}
*sotrudnik str_compare (string str1, string str2, sotrudnik sot1, sotrudnik sot2)
Я пытаюсь выучить C . Но когда я пытаюсь скомпилировать этот код с помощью GCC-4.4.5, используя опции «g -Wall -c», я получаю следующую ошибку:
g -Wall -c «lab2.cc » (в каталоге: /home/ion/Univer/Cpp)
lab2.cc:11: ошибка: ожидаемый инициализатор перед
create
lab2.cc:20: ошибка: ожидаемый конструктор, деструктор или преобразование типа передstr_compare
Сбой компиляции.
Обе ошибки связаны с объявлениями функций. (раунд 11 — объявление функции create, раунд 20 — функции str_compare
). Пытался поискать в Google ошибки такого рода, но не смог найти примеров похожих ошибок, поскольку сообщения об ошибках очень общие. Как я могу понять их значение и как их решить? Большое спасибо за ваше внимание.
Ответ №1:
У вас отсутствует точка с запятой в конце вашего определения ‘struct’.
Также,
*sotrudnik
должен быть
sotrudnik*
Комментарии:
1. Большое вам спасибо, я это пропустил .. в любом случае, вторая ошибка остается той же. Это потому, что is возвращает указатель на созданный мной тип структуры?
2. похоже, что этот тип ошибки возникает, когда отсутствуют точки с запятой, такие загадочные c .
Ответ №2:
Попробуйте добавить точку с запятой в конец вашей структуры:
struct sotrudnik {
string name;
string speciality;
string razread;
int zarplata;
} //Semi colon here
Комментарии:
1. Возможно, было бы лучше предложить отредактировать исходный ответ.