Функция выводящая строку и файл, в котором она вызвана
Как написать на С++ функцию, которая выводит строку и название файла, в котором она вызвана.
Источник: Stack Overflow на русском
Как написать на С++ функцию, которая выводит строку и название файла, в котором она вызвана.
Если правильно понял, то Вас интересует вот это:
avp@avp-ubu1:hashcode$ cat c1.cpp
#include <stdio.h>
// HERE() это просто тест __FUNCTION__, __FILE__, __LINE__
#define HERE(msg) (printf("%s: in %s [%s line %d]\n",(msg), \
__FUNCTION__, __FILE__, __LINE__ ))
void test_func (const char *msg)
{
HERE(msg);
}
int main()
{
test_func("You are here");
}
avp@avp-ubu1:hashcode$ g++ c1.cpp
avp@avp-ubu1:hashcode$ ./a.out
You are here: in test_func [c1.cpp line 9]
avp@avp-ubu1:hashcode$
Эта штука (__FILE__
, __LINE__
и т.п.) называется Standard Predefined Macros