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

поиск глобальных переменных с++ - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 43, средняя оценка - 4.65
ser_13
1 / 1 / 0
Регистрация: 07.02.2012
Сообщений: 3
07.02.2012, 16:14     поиск глобальных переменных с++ #1
Есть задачка, которую не могу решить. Дано 9000 .cpp файлов, которые являют собой полноценные программы со своими мейнами. Нужно найти для каждого файла его глобальные переменные. Приветствуются отсылки к каким-нибудь тулзам, которые это умеют делать. Например, как это возможно вытянуть из линкера VS. Парсер написать пытаюсь, но это сложная задача для меня.

Добавлено через 12 минут
Помогите пожалуйста!очень нужно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
07.02.2012, 18:23     поиск глобальных переменных с++ #21
taras atavin, ну вот, через 3 сообщения мне удалось из вас вытянуть то, что вы имели ввиду... Доступно излагаете.
Каюсь, об этом не подумал. Но все равно до сих пор не понял, почему вы откинули {} и оставили только ().
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.02.2012, 18:27     поиск глобальных переменных с++ #22
Цитата Сообщение от soon Посмотреть сообщение
Под именем я подразумевал наличие (), если вы об этом.
Про имя во-первых вообще ни слова не было. А во-вторых как об это догадаться, если имена есть и у переменных и даже у типов?

Добавлено через 2 минуты
Цитата Сообщение от silent_1991 Посмотреть сообщение
юсь, об этом не подумал. Но все равно до сих пор не понял, почему вы откинули {} и оставили только ().
C++
1
2
3
4
5
int f(int x); // Это по твоей логике опять переменная
int main()
{
 return 0;
}
, хотя {} есть только у main.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
07.02.2012, 18:29     поиск глобальных переменных с++ #23
Цитата Сообщение от taras atavin Посмотреть сообщение
Про имя во-первых вообще ни слова не было.
Цитата Сообщение от soon Посмотреть сообщение
И по имени.
Цитата Сообщение от taras atavin Посмотреть сообщение
А во-вторых как об это догадаться, если имена есть и у переменных и даже у типов?
Речь шла о функции, да? А имя функции подразумевает наличие (). Дак о чем вы собирались догадываться?
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.02.2012, 18:30     поиск глобальных переменных с++ #24
А ну с учётом классов, структур и енамов ещё следует их тоже проверить по ключевым словам и отсеить содержание соответствующих {}.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
07.02.2012, 18:32     поиск глобальных переменных с++ #25
Цитата Сообщение от taras atavin Посмотреть сообщение
хотя {} есть только у main.
И что?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Глобальная область
int foo(int a, int b); // Прототип функции
// Глобальная область
void bar()
{
    // Тарам-пам-пам
}
// Глобальная область
class Moo
{
    // Тело класса
};
// Глобальная область
int main()
{
    return 0;
}
// Глобальная область
Как видно, глобальная область находится за пределами блоков {}. В ней и надо искать.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.02.2012, 18:35     поиск глобальных переменных с++ #26
Цитата Сообщение от silent_1991 Посмотреть сообщение
И что?
А то, что прототип функции {} не имеет, но и глобальной переменной не является.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
07.02.2012, 18:52     поиск глобальных переменных с++ #27
Кстати я поторопился. Я в своем коде не учел некоторых вещей. Забыл keyword using. Т.е. using std::cout; и т.д. Забыл typedef-ы
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
07.02.2012, 19:46     поиск глобальных переменных с++ #28
taras atavin, ай, вам как об стенку горох. Замяли.
Грымзик
 Аватар для Грымзик
2466 / 1443 / 31
Регистрация: 14.09.2009
Сообщений: 2,742
01.05.2012, 19:19     поиск глобальных переменных с++ #29
Я тоже занимаюсь этой задачей, и у меня возникла проблема. Ответ получается 218 кб, а ограничение на посылку 200. Конечно может у меня не правильно, но есть повод задуматься, что ошибка все-таки у них. Т.к первый файл у них
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<vector>
#include<algorithm>
 
size_t N,M;
const size_t MAXN = 40000;
std::vector<std::pair<size_t,size_t> > graph[MAXN],query[MAXN],qr;
size_t p[MAXN], ancestor[MAXN];
bool u[MAXN];
size_t ansv[MAXN];
size_t cost[MAXN];
...
А в задании, в примере, указан такой ответ для данного теста
000000.cpp ancestor ansv cost graph M N p qr query u
Т.е нет переменной MAXN. Может я не знаю таких тонкостей, что константные глобальные переменные, все-таки не глобальные?
Pasha88
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 4
23.08.2012, 21:12     поиск глобальных переменных с++ #30
Цитата Сообщение от Грымзик Посмотреть сообщение
Я тоже занимаюсь этой задачей, и у меня возникла проблема. Ответ получается 218 кб, а ограничение на посылку 200. Конечно может у меня не правильно, но есть повод задуматься, что ошибка все-таки у них. Т.к первый файл у них
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<vector>
#include<algorithm>
 
size_t N,M;
const size_t MAXN = 40000;
std::vector<std::pair<size_t,size_t> > graph[MAXN],query[MAXN],qr;
size_t p[MAXN], ancestor[MAXN];
bool u[MAXN];
size_t ansv[MAXN];
size_t cost[MAXN];
...
А в задании, в примере, указан такой ответ для данного теста
000000.cpp ancestor ansv cost graph M N p qr query u
Т.е нет переменной MAXN. Может я не знаю таких тонкостей, что константные глобальные переменные, все-таки не глобальные?
хммм, мне тоже интересно на счет глобальности констант
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
23.08.2012, 22:32     поиск глобальных переменных с++ #31
Цитата Сообщение от silent_1991 Посмотреть сообщение
Надо смотреть все переменные, которые находятся вне блоков
А почему namespace отменяет глобальность? По-моему, глобальные перменные - это переменные доступные из любого места программы. Даже в какой-то степени public статическое поле любого класса - то же своего рода глобальная переменная
vOOner
Сообщений: n/a
17.10.2012, 19:56     поиск глобальных переменных с++ #32
Цитата Сообщение от Грымзик Посмотреть сообщение
Я тоже занимаюсь этой задачей, и у меня возникла проблема. Ответ получается 218 кб, а ограничение на посылку 200. Конечно может у меня не правильно, но есть повод задуматься, что ошибка все-таки у них. Т.к первый файл у них
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
#include<vector>
#include<algorithm>
 
size_t N,M;
const size_t MAXN = 40000;
std::vector<std::pair<size_t,size_t> > graph[MAXN],query[MAXN],qr;
size_t p[MAXN], ancestor[MAXN];
bool u[MAXN];
size_t ansv[MAXN];
size_t cost[MAXN];
...
А в задании, в примере, указан такой ответ для данного теста
000000.cpp ancestor ansv cost graph M N p qr query u
Т.е нет переменной MAXN. Может я не знаю таких тонкостей, что константные глобальные переменные, все-таки не глобальные?
Уважаемый, Грымзик! Есть ли у вас какие продвижение в данной задаче? Подскажите куда и как копнуть?!
eocron
Кактус
 Аватар для eocron
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
29.07.2013, 21:12     поиск глобальных переменных с++ #33
Мне интересно, как вы будете обрабатывать вот такое:
C++
1
2
3
4
5
6
int f()
{
      cout<<"}"<<endl;
      int a=0;
      return;
}
Тут без полного разбора задачу не решить. Кстати, не подскажите где взять эти чертовы исходники? Условие задачи я прочел, че отсылать им туда и откуда брать эту задачу - ума не приложу. Кнопка submit и только, а на вопросы никто не отвечает.
alsav22
29.07.2013, 21:14
  #34

Не по теме:

Цитата Сообщение от eocron Посмотреть сообщение
Мне интересно, как вы будете обрабатывать вот такое:
Послание в прошлое?

eocron
Кактус
 Аватар для eocron
66 / 66 / 6
Регистрация: 23.05.2012
Сообщений: 343
29.07.2013, 21:18     поиск глобальных переменных с++ #35
Просто прохожу сейчас стажировку.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2013, 07:22     поиск глобальных переменных с++
Еще ссылки по теме:

Объявление глобальных переменных в проекте Dev C++ C++
C++ Описание глобальных переменных
C++ Ошибка в сравнении глобальных переменных в функциях

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.07.2013, 07:22     поиск глобальных переменных с++ #36
Цитата Сообщение от eocron Посмотреть сообщение
Тут без полного разбора задачу не решить.
Вообще говоря, полный разбор - не такая уж большая проблема. Грамматика языка дана в стандарте, существует куча средств для генерации парсеров (тот же flex/bison), правила не будут слишком сложными (нет необходимости строить полное AST, мы же не компилировать собираемся). По сути, данный парсер не будет содержать практически никакой семантики, кроме вытягивания глобальных переменных, а всю остальную работу сделает генератор парсеров.
Yandex
Объявления
30.07.2013, 07:22     поиск глобальных переменных с++
Ответ Создать тему
Опции темы

Текущее время: 15:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru