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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2011, 23:44   #11
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

kleric

Имеется файл исходного кода - cpp. Как получить из этого файла список всех функций (работаем только на уровне файла - классы и др. не смотрим) c аргументами и возвр. значениями?

Сtrl

Регулярные выражения.


А теперь - правильный ответ: анализатором грамматики. (E)BNF рулит.

почему регулярки не решают поставленной задачи почитать можно, например, задесь: http://www.viva64.com/ru/b/0087/

И ещё - пусть функция была определена, но как проверить вызывалась ли она когда-нибудь?

гоогле C++ instrumenting
Rififi вне форума Ответить с цитированием
Старый 03.07.2011, 00:01   #12
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Rififi, не путайте диагностику ошибок и поиск функций. Здесь все предельно просто, функция определяется весьма обычно:

Код:
тип имя(параметры)
{
	тело
}
Ну, еще учесть возможность опциональных скобок и астериска, а также typedef.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 03.07.2011, 00:19   #13
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Здесь все предельно просто, функция определяется весьма обычно:

Ога. Учитывая, что функция, например, может быть и такой:

int (*(*f(float (*(*(*(* const x[3])())[5][5])[1])(int)))[10])[10];


(((((((((((((:
Rififi вне форума Ответить с цитированием
Старый 03.07.2011, 00:26   #14
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

...Или через макросы.
Есть ещё extern функции. Как с ними быть?
Carbon вне форума Ответить с цитированием
Старый 03.07.2011, 00:30   #15
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
Ога. Учитывая, что функция, например, может быть и такой:

int (*(*f(float (*(*(*(* const x[3])())[5][5])[1])(int)))[10])[10];
Особенно если учитывать, что это - не функция, а массив указателей.
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 03.07.2011, 00:41   #16
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Особенно если учитывать, что это - не функция, а массив указателей.

массив указателей такой массив указателей :LOL:

Код:
int (*(*f(int (*(*(*(* const x[3])())[5][5])[1])(int )))[10])[10]
{
	static int a1[10];
	static int (*a2)[10] = {&a1};
	static int (*(arr)[10])[10] = {a2};
	return &arr;
}
Rififi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компиляция исходного кода vitekrock Общие вопросы по Java, Java SE, Kotlin 5 05.12.2010 21:24
получение исходного кода и удаление строки shanluu Работа с сетью в Delphi 3 17.10.2010 21:18
получение серого изображения из исходного DeDoK Общие вопросы Delphi 15 10.09.2010 11:45
Анализ исходного кода heart Безопасность, Шифрование 7 31.12.2009 08:26
Анализ исходного кода SwitchMan Паскаль, Turbo Pascal, PascalABC.NET 1 25.04.2009 18:14