|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.07.2014, 16:13 | #1 |
Форумчанин
Регистрация: 16.09.2013
Сообщений: 149
|
работа компилятора и линклвщика
main.c
Код:
Код:
Код:
error C2129: статическая функция "int sum(int,int)" объявлена, но не определена Прочитал в статье: Компилятор допускает ссылки на функции если видел ранее объявления. Объявление — это обещание, что определение существует где-то в другом месте программы. Работа компоновщика проверить эти обещания. Так какого компилятор бурагозит, а не линковщик??) Последний раз редактировалось zla9_kolu4ka; 28.07.2014 в 16:38. |
28.07.2014, 17:23 | #2 | |
Форумчанин
Регистрация: 16.09.2013
Сообщений: 149
|
Цитата:
разобрался уже без тебя, можешь валить |
|
28.07.2014, 17:26 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Мне как Делфийцу интересно.
I'm learning to live...
|
|
28.07.2014, 17:33 | #4 | |
Форумчанин
Регистрация: 16.09.2013
Сообщений: 149
|
Цитата:
И поэтому раз ее нет, то компилятор может установить ошибку, не вызыывая линковщик |
|
28.07.2014, 17:51 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Надо запомнить на всяк случай... Я статики вне модуля не прописывал никогда.
I'm learning to live...
|
02.08.2014, 21:28 | #6 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
|
02.08.2014, 21:51 | #7 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Судя по контексту переписки, под "модулем" нужно понимать "единицу трансляции".
Любое объявление определяется в какой то единице трансляции, следовательно фраза "вне модуля" получается лишена смысла. Возможно автор имел ввиду "не использовал ключевое слово static в хэдэре с целью ограничить область видимости объявления этой единицей трансляции". Последний раз редактировалось _Bers; 02.08.2014 в 21:56. |
02.08.2014, 22:22 | #8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Благо что проекты махонькие. А "модуль" это я из Паскаля название привнес. Ну по вашему - хедер (видимо).
I'm learning to live...
|
|
04.08.2014, 12:18 | #9 |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
|
04.08.2014, 20:31 | #10 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
У единиц трансляций нет ничего общего. У каждой все свое. Если хедер включен, то включен целиком и все что в нем было полностью вставлено на место #include. В другой единице трансляции тоже самое. Короче если речь об единицах трансляции, то и о трансляции. А во время трансляции никаких хедеров нету. Поэтому фраза получается лишена смысла. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проектирование компилятора | rusfin01 | Фриланс | 0 | 15.04.2013 22:11 |
Создание компилятора | Jaksn | Помощь студентам | 7 | 31.01.2013 22:46 |
Разработка компилятора | Чай_ник | Помощь студентам | 20 | 17.01.2011 17:25 |
Определение компилятора | AltF4 | Общие вопросы C/C++ | 4 | 11.08.2009 11:11 |
Исходники компилятора | Simply-Art | Свободное общение | 1 | 08.07.2008 13:17 |