|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.12.2012, 18:16 | #1 |
Пользователь
Регистрация: 08.12.2012
Сообщений: 18
|
Проблема с обьявлением идентификаторов в С++
Огромная просьба помочь:
Написал программку для вывода в табличном виде значений заданной функции. Обязательное условие: расчёт через отдельную функцию и многофайловость проекта. При компановке всего кода в один файл все прекрасно работало. Далее разбил на 2 файла .срр и файл .h: В заголовочный файл вставил все дерективы подпроцессора, и объявление функции ( double F (double) ) В остальных файлах вместо всех деректив только подключение этого заголовочного файла и объявление переменных в основном файле. В итоге при запуске выдается ошибка: "Ошибка 1 error C2065: a: необъявленный идентификатор d:\c++\lab1ttp\osnoma\func.cpp 7" и также для переменной "y" листинг файлов: head.h Код:
Код:
Код:
|
11.12.2012, 18:20 | #2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Почитайте про "стражей включения".
А вообще, за такие приколы... Код:
|
11.12.2012, 18:27 | #3 | |
Пользователь
Регистрация: 08.12.2012
Сообщений: 18
|
Цитата:
я на звание "папки" не прендую - поэтому обратился сюда. |
|
11.12.2012, 18:45 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
|
11.12.2012, 20:09 | #5 |
Пользователь
Регистрация: 08.12.2012
Сообщений: 18
|
все же, огомная просьба указать на ошибки:
head.h Код:
Код:
Код:
Ошибка 1 error LNK2005: "double a" (?a@@3NA) уже определен в code1.obj D:\C++\LAB1ttp\osnoma\func.obj Ошибка 2 error LNK2005: "double x" (?x@@3NA) уже определен в code1.obj D:\C++\LAB1ttp\osnoma\func.obj Ошибка 3 error LNK2005: "double y" (?y@@3NA) уже определен в code1.obj D:\C++\LAB1ttp\osnoma\func.obj При этом если все собирать в один файл- все работает без ошибок. |
11.12.2012, 20:18 | #6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
a, x, y не особееные, екстерн к ним
П.С. Модеры убейте уже одну из тем... |
11.12.2012, 20:27 | #7 |
Пользователь
Регистрация: 08.12.2012
Сообщений: 18
|
|
11.12.2012, 22:59 | #8 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Первый, неправильный вариант лечения: объявить переменные в h-файле с использованием ключевого слова extern и определить в некотором .cpp-файле. Так у Вас сделано, к примеру, в отношении переменной dx. Второй, правильный вариант: не использовать неконстантные глобальные переменные, в этой программе в них нет нужды. |
|
11.12.2012, 23:24 | #9 | |
Пользователь
Регистрация: 08.12.2012
Сообщений: 18
|
Цитата:
|
|
11.12.2012, 23:43 | #10 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Не использовать глобальные переменные. То есть, функция F должна использовать только те переменные, которые передаются ей в качестве аргументов, плюс те, которые объявлены внутри неё самой (локальные переменные).
F при этом должна стать функцией от двух аргументов, обратите внимание. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск дубликатов/повторов идентификаторов в файлах проекта | phomm | Общие вопросы Delphi | 12 | 09.09.2014 06:50 |
Неблокирующий сокет Си проблема с закрытием, проблема с закрытием сокетов в цикле | mnx_vol | C/C++ Сетевое программирование | 0 | 06.11.2012 13:57 |
Организация таблиц идентификаторов | Artemka89 | Общие вопросы C/C++ | 0 | 17.05.2010 01:07 |
Организация таблицы идентификаторов | freez89 | Помощь студентам | 1 | 06.04.2010 00:46 |
Проблема с рамами/Проблема с ЖД | DRAGGER | Компьютерное железо | 6 | 04.01.2009 23:37 |