Форум программистов, компьютерный форум CyberForum.ru

undefined reference to `variable` - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача : "Скобочки". http://www.cyberforum.ru/cpp-beginners/thread392433.html
Некоторые скобочные структуры правильные, другие — неправильные. Ваша задача — определить правильная ли скобочная структура. Вход: Слово в алфавите из двух круглых скобочек ( и ). Длина слова меньше 4001. Выход: Либо 'NO', либо 'YES' без кавычек. ВХОД #1: () ВЫХОД #1:
C++ исправьте ошибки пожалуйста #include "stdafx.h" #include <math.h> float rec(float n) { if (n==1)return 0; else return log(n/(sqrt(n))+rec(n-1)); } int _tmain(int argc, _TCHAR* argv) { printf ("vvedite seloe n \n"); http://www.cyberforum.ru/cpp-beginners/thread392428.html
C++ Полноэкранное консольное приложение
Здравствуйте! Вопрос состоим в следующем: как запустить консольное приложение в полноэкранном режиме? Есть ли какая-то функция для этих целей? Заранее спасибо.
Определить двух студентов с наивысшим средним баллом. C++
С текстового файла считать последовательность записей, содержащих данные о результатах сессии студентов группы в следующем формате: <Фамилия>, <Имя>,, <Список экзаменационных оценок>. Распечатать введенные данные в виде таблицы, Видсортуваваты данные по фамилиям студентов в алфавитном порядке. определить двух студентов с высоким средним баллом. Проблема в том что я еще не очень понимаю и...
C++ одномерный массив http://www.cyberforum.ru/cpp-beginners/thread392397.html
Удалить из массива М(26) первый положительный элемент. Пожалуйста!!! Вводить и выводить через printf и scanf. Использовать только библиотеки stdio. h, time.h, stdlib
C++ не могу понять с чего начать Написать программу содержащую 2 функции. Первая функция которая выводит на экран строку, состоящую из одинаковых символов располагается после функции main . вторая функция которая запрашивает длину строки и символ , располагается до функции main помогите написать прогу... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
26.11.2011, 19:34     undefined reference to `variable`
Цитата Сообщение от OrmaJever Посмотреть сообщение
Ну так, WndProc.cpp компилируется отдельно, main.cpp отдельно.

Ну вот я и пытаюсь обьявить, но как сказать что используемая переменая в WndProc.cpp отпределяется в main.cpp?

Можно сказать уже понимаю, но ещё бы разок послушал разницу.

Добавлено через 4 минуты
Опишу ситуацию вот так
main.h
C++
1
TYPE variable; // обьявление
main.cpp

C++
1
2
#include "main.h"
variable = some_function(param) // определение
WndProc.cpp
C++
1
2
#include "main.h"
other_function(variable); // использование
Но main.cpp и WndProc.cpp компилируются отдельно, как связать эту переменую?
Я вам сейчас подробно все объясню. Дело в том, когда в списке спецификаций стоит слово extern для объекта, но сам объект не инициализируется, то это является объявлением объекта, но не его определением. Ежеди присутствует выражение инициализации, то тогда это является опредеением.

Для примера

C++
1
extern int x;  // Это объявление объекта с именем x
C++
1
extern int x = 0;  // Это определение объекта с именем x
Поэтому когда вы во все модули включаете предложение

C++
1
extern HWND ip;
то во всех модулях вы лишь объявили переменную, сказав, что это есть некоторая внешняя переменная.

Естественно компилятор не знает, а гед же эта переменная определена, в каком модуле.

Давайте рассмотрим другой пример. Во все модули вы включили в глобальное пространство имен предложение

C++
1
HWND ip;
Это уже опредеение переменной. Тогда ситуация возникнет другая. Редактор связей увидет несколько определений одного и того же имени. И также сообщит об ошибке.

Как тогда поступить?

Вы в заголовочном файле оставляете свое объявление

C++
1
extern HWND ip;
Но в файле с main вы дополнительно вставляете строку

C++
1
HWND ip;
или

C++
1
extern HWND  ip = 0;
 
Текущее время: 07:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru