2016-01-18 9 views
-1

Я новичок в программировании, и в настоящее время я изучаю программирование на С. Я пишу коды на блоках кода и в нем с помощью компилятора GCC. Когда я создаю новый проект (как вы знаете, он создает файл main.c с ним), и из-за этого я не могу скомпилировать другой файл в этом проекте.Множество определений основных в первую очередь здесь

Файл 1:

#include<stdio.h> 

int main() 
{ 
    int a,b,c,d; 
    printf("Enter three numbers\n"); 
    scanf("%d%d%d",&a,&b,&c); 
    d=a; 
    if(b>d) 
     d=b; 
    if(c>d) 
     d=c; 
    printf("\n The maximum of three numbers is %d",d); 

} 

Файл 2: main.c

#include <stdio.h> 

int main() 
{ 
    printf("Hello world!\n"); 
    return 0; 
} 

Когда я компилирую первую программу, она показывает следующее сообщение об ошибке: множественного определения 'главной' впервые определен здесь

Я искал все, где мог, и я не могу это решить. В одном из ответов здесь на переполнение стека, что кто-то предложил написать в (Проект-> Build варианты ...-> Настройки компоновщика (вкладка))

-Wl,--allow-multiple-definition 

Когда я написал, было не ошибки. Но он не смог запустить мой файл 1, и вместо этого он запускает этот файл main.c. Даже когда я закрываю файл main.c, он снова открывается и запускает файл main.c, который дает результат «Hello World!».

Первоначально, когда я использовал блоки кода, таких ошибок не было. Я не знаю, почему это происходит, и я мало знаю о компиляторах.

+0

Я сам не использовал «кодовые блоки», но я считаю, что вы добавили оба файла в один и тот же «проект», верно? –

+4

Вы не можете иметь несколько функций с тем же именем – Arc676

+5

Нельзя связывать несвязанные программы вместе. Поместите их в отдельные проекты. – interjay

ответ

1

Как отмечено в комментариях, у вас может быть только одна основная функция.

Итак, при запуске нового проекта вам необходимо заменить файл main.c файлом main.c, который вы хотите использовать. Или вы можете редактировать программу «hello world» main.c.

Когда вы начинаете новый проект в блоке code :: blocks, вы можете получить новый каталог с простой программой, которая печатает «Hello World». Обычно этот файл main.c. Вам необходимо отредактировать этот файл или заменить его. Причина, по которой code :: blocks ставит эту простую программу main.c в новый проект, заключается в том, что вы можете скомпилировать ее и протестировать вашу систему без необходимости писать новую программу.

+0

Спасибо Том, я редактирую эту программу «hello world» main.c и написал программу, которую я хотел написать, и я смог ее скомпилировать и запустить. –

+0

@ ArchitaDesai good - если это решает вашу проблему, вы можете захотеть пометить вопрос как решенный. – tom

0

Некоторые языки компьютера позволяют использовать одно и то же имя функции для различных функций (которые идентифицируются по их параметрам и иногда возвращают типы). Это называется перегрузка. C делает нет разрешите это. Функции в C должны иметь уникальные имена.

Функция main() является специальной в C, поскольку она используется в качестве стандартной точки входа для приложений. То есть функция main() будет вызвана первой, и ваше приложение должно начать и (как правило) завершить эту функцию.

Будучи новичком, я предлагаю вам избежать автоматических функций редактора, которые создают и создают для вас проекты. Вы пропустите, узнав, как все это работает. Используйте редактор для запуска из пустых файлов и узнайте, как все они подключаются и как использовать компилятор из командной строки. Командная строка - это то, с чего начинать начинать начинающий, ИМО.

Это может быть труднее узнать, но это даст вам гораздо лучшее представление о том, что происходит.