C言語:呼び出し元の関数名を関数に印刷する

901 ワード

Linux-cでの印刷呼び出し関数の名前
#include 
#include 
void func(unsigned char *func_buf)
{
        printf("%s 
",func_buf); } void aaaaa() { unsigned char func_buf[50] = {0}; sprintf(func_buf, "%s", __FUNCTION__); func(func_buf); } void bbbbb() { unsigned char func_buf[50] = {0}; sprintf(func_buf, "%s", __FUNCTION__); func(func_buf); } int main() { unsigned char func_buf[50] = {0}; sprintf(func_buf, "%s", __FUNCTION__); func(func_buf); aaaaa(); bbbbb(); return 0; }

実行結果:
root@ubuntu:/home# ./test
main 
aaaaa 
bbbbb 
root@ubuntu:/home# 

配列保存関数の名前文字列を定義します.