Страница 1 из 1
Название функции в run time
Добавлено: 2009-05-26 17:30:25
de-signer
Куча разных программ используют консоль/окно отладки/и пр. Очнь часто встречается отладочная инфа вида:
Это ручками делается или у компилятора можно спросить какая функция сейчас исполняется (номер строки в файле), чтобы во время выполнения уже скомпилированной программы увидеть написанное выше
Re: Название функции в run time
Добавлено: 2009-05-26 17:33:17
paradox
__file__
__line__
итд
Re: Название функции в run time
Добавлено: 2009-05-26 18:11:51
de-signer
А на все подобные конструкции ман есть?
Re: Название функции в run time
Добавлено: 2009-05-26 18:13:47
paradox
угу
в каждой книге по программированию написано
Re: Название функции в run time
Добавлено: 2009-05-26 18:34:14
de-signer
В своё время только по Си книг купил штуки 4. Раздал под обещание вернуть - ни одну не вернули.
Пролистал _все_ от корки до корки. Ничего подобного не видел.
В интернет-man'ах то же самое.
И ещё вопрос: __line__ возвращает строку. Учитывается ли добавленные #include файлы? Учитываются ли инструкции #ifdef. Т.к. если нет, то цена __line__ на ломаный грош не тянет.
Да, и ещё: __proc__ либо __func_ есть? Т.е. какая функция на данный момент отрабатывает?
Re: Название функции в run time
Добавлено: 2009-05-26 18:38:23
paradox
плохие книги наверное были
я в свое жизни токо пару книг осилил прочитать по си/с++
__line__
это строка отначала файла
тоесть если
дебаг __line__ показал при выволнении файла 123
и если сделать vi +123 file.cpp
То это будет та строка где стоит __line__
зы
все таки найди хорошие книги и почитай
Re: Название функции в run time
Добавлено: 2009-05-26 18:42:01
de-signer
2paradox
Дык я не против почитать. Посоветуй автора/название. Лучше если в инете. Нет, пусть будут печатные - не имеет значения.
Re: Название функции в run time
Добавлено: 2009-05-26 18:44:11
de-signer
2paradox
Не в обиду: в автоподписи поставь запятую после freebsd

Re: Название функции в run time
Добавлено: 2009-05-26 18:54:04
paradox
могу испраивить)
хотя там врядли кто ее читает
Re: Название функции в run time
Добавлено: 2009-05-26 19:00:01
paradox
я программироваие учил когда у меня компютера еще небыло
соответсвенно все читал в книжных вариантах
поэтоу врядли чтото посоветую в електронном
Re: Название функции в run time
Добавлено: 2009-05-26 23:24:04
Fastman
de-signer писал(а):2paradox
Дык я не против почитать. Посоветуй автора/название. Лучше если в инете. Нет, пусть будут печатные - не имеет значения.
Нету одной книги..или скажем, двух-трех, в которых было бы все...
По ходу разбирательств сначала читаешь основы простые.. потом когда языковые конструкции вроде усвоил(а хрена там !!!!!) и надо писать что то а не хэлло-ворды плодить, достаешь книжки по теории алгоритмов.
После этого загораешься и начинаешь искать сахар(фреймворки итд)... потом делаешь мегамонстров которые валятся непонятно где... Думаешь... опять берешь книжки по основам... вдумчива читаешь... не понимаешь кой чего... лезешь читать как устроены компиляторы и что такое ассемблер....
Потом тебя озаряет - и начинаешь писать свой фреймворк... после того как наплодил костылей и запутался - понимаешь что повторяешь то что еже есть.
Плюешь.. делаешь кучку стандартных инструментов и живешь счастливо и долго периодически дописывая их
Так и будет как я описал. Поверь

)
Я некоторые моменты в своей жизни пропустил..потому что как говорит парадокс - начинал с того что столбиком переводил из одной системы исчисления в другую

Re: Название функции в run time
Добавлено: 2009-05-26 23:27:21
paradox
Да, и ещё: __proc__ либо __func_ есть? Т.е. какая функция на данный момент отрабатывает?
__func__
есть
текущая функция
еще
дата и время есть
но я их непомоню поскольку не юзаю
думаю что то типа __date__, __time__
Re: Название функции в run time
Добавлено: 2009-05-27 0:01:11
Fastman
de-signer писал(а):В своё время только по Си книг купил штуки 4. Раздал под обещание вернуть - ни одну не вернули.
Пролистал _все_ от корки до корки. Ничего подобного не видел.
В интернет-man'ах то же самое.
И ещё вопрос: __line__ возвращает строку. Учитывается ли добавленные #include файлы? Учитываются ли инструкции #ifdef. Т.к. если нет, то цена __line__ на ломаный грош не тянет.
Да, и ещё: __proc__ либо __func_ есть? Т.е. какая функция на данный момент отрабатывает?
http://www.cppreference.com/wiki/prepro ... essor_vars
http://gcc.gnu.org/onlinedocs/gcc/Function-Names.html
Re: Название функции в run time
Добавлено: 2009-05-27 7:31:50
zg
Код: Выделить всё
zg# cat 1.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int myError(char *, int , char *);
int main(void)
{
fopen("::", "r") || myError((char *) __FUNCTION__, __LINE__, __FILE__);
}
int myError(char * funct, int line, char * file)
{
char buff[255];
snprintf(buff, sizeof(buff), "%s:%s:%i", file, funct, line);
perror(buff);
return 0;
}
zg# cc 1.c -o 1.bin && ./1.bin
1.c:main:9: No such file or directory
zg#

Re: Название функции в run time
Добавлено: 2009-05-27 11:25:27
de-signer
2Fastman
Было уже всё. Ровно по тому сценарию, который ты описал. Только про ассемблер раньше узнал ещё на Z80.
И столбиком тоже переводил

Сейчас калькулятор под рукой. Купил лет 10 назад. Ничего в нём такого навороченного нет, но знает двоичную, восьмеричную, десятичную и шестнадцатиричную. Вот после покупки про столбики забыл

Re: Название функции в run time
Добавлено: 2009-05-27 11:40:21
de-signer
2zg
А в компилере случаем нет опции вроде "full evaluate boolean expression"? Честно говоря я к ней привык. Спасибо, что предупредил.
Re: Название функции в run time
Добавлено: 2009-05-27 12:25:51
zg
de-signer писал(а):А в компилере случаем нет опции вроде "full evaluate boolean expression"?
а хрен его знает

я на Си не пишу
Но лучше так не делать, как я написал -)) лучше использовать
if, просто я для примера привёл
