Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.07.2012, 18:10   #1
Denis_nn
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 22
По умолчанию Ошибка линкера

Здравствуйте! Подскажите пожалуйста в чем здесь дело? Объявил extern указатели в файле .h, а использую в main.cpp, и компилятор постоянно выдает LINK ошибки.

parser.h
Код:
#pragma once

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>
#include <conio.h>
#include <cctype>

using namespace std;

///// Is alpha token ////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////

const int vc_size = 20;
const int PROG_SIZE = 10000;



enum tokenT {UNDEFTOK, NUMBER, OPERATOR}; // The internal representation of token

extern char token[80];    // External representation.
extern char *prog;        // External program.
extern char *p_buff; 

extern tokenT token_type; // Internal oken type

class parser
{
	
 public:
 ///// variables /////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////
 bool is_sp_tab(char*);   // Пробел или табуляция
 bool is_delimiter(char*); // Разделитель
};

tokenT get_token();

parser.cpp
Код:

#include "parser.h"
/*
tokenT get_token()
{
 register char *temp;

 token_type = UNDEFTOK;
 temp = token;

 if(*prog == '\0')
	 *token = '\0';
 return(token_type = OPERATOR);

 
}
*/

///// Пробел или табуляция //////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
bool parser::is_sp_tab(char *prg)    
{
	if(*prg == ' ' || *prg == '\t')
	{ cout << "Space" << endl;
		return true;
	}
	cout << "No space" << endl;
 return false;
}
main.cpp
Код:
#include "parser.h"

int main()
{
 parser ob;
 prog = new char[PROG_SIZE];

 cin >> prog;

 p_buff = prog;

 ob.is_sp_tab(p_buff);

 //get_token();

 return 0;
}

Последний раз редактировалось Stilet; 18.07.2012 в 20:08.
Denis_nn вне форума Ответить с цитированием
Старый 18.07.2012, 18:34   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Все переменные описанные в h с extern должны быть объявлены в одной из единиц компиляции (cpp-файле, например)
p51x на форуме Ответить с цитированием
Старый 18.07.2012, 18:45   #3
Denis_nn
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 22
По умолчанию

Тоесть я должен написать тоже самое(extern char *prog в срр файле? или не тоже самое?
Denis_nn вне форума Ответить с цитированием
Старый 18.07.2012, 18:52   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

в cpp без extern.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.07.2012, 19:00   #5
Denis_nn
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 22
По умолчанию

Все вроде получилось!!!))) Товарищ! Ты мне реально помог! СПАСИБО!!! Пол дня с этой фигней маился!
Denis_nn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
ошибка линкера: indefined reference to 'EnumPrintersW@28' agronomchek Помощь студентам 5 04.03.2012 16:38
Ошибка линкера: error LNK2001: unresolved external symbol _WinMain@16 krugolet Visual C++ 4 02.01.2012 23:03
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58
Опция линкера /NODEFAULTLIB kot111 Общие вопросы .NET 9 30.12.2007 18:22