__PRETTY_FUNCTION_ 以及C++中调用C

linux@ubuntu:~/linux_c$ cat example.c 
#include <stdio.h>




int main(void)
{
printf("hi main=%s %s\n",__FUNCTION__,__PRETTY_FUNCTION__);
printf("hi main=%s %s\n",__FUNCTION__,__func__);
return 0;
}


linux@ubuntu:~/linux_c$ cat test.cpp 
#include <stdio.h>
extern "C" {
     extern int printf (const char *, ...);
     }
     
     
     class a {
      public:
       void sub (int i)
         {
           printf ("__FUNCTION__ = %s\n", __FUNCTION__);
           printf ("__PRETTY_FUNCTION__ = %s\n", __PRETTY_FUNCTION__);
         }
     };
     
     int
     main (void)
     {
       a ax;
       ax.sub (0);
       return 0;
     


linux@ubuntu:~/linux_c$ g++ test.cpp -o dd

linux@ubuntu:~/linux_c$ ls -l
total 28
-rwxrwxr-x 1 linux linux 8324 Sep 29 11:21 a.out
-rwxrwxr-x 1 linux linux 7285 Sep 29 11:24 dd
-rw-rw-r-- 1 linux linux  162 Sep 29 11:19 example.c
-rw-rw-r-- 1 linux linux  401 Sep 29 11:24 test.cpp
linux@ubuntu:~/linux_c$ ./a.out
hi main=main main
hi main=main main
linux@ubuntu:~/linux_c$ ./dd 
__FUNCTION__ = sub
__PRETTY_FUNCTION__ = void a::sub(int)
linux@ubuntu:~/linux_c$ gcc -g example.c
linux@ubuntu:~/linux_c$ ./a.out 
hi main=main main
hi main=main main
linux@ubuntu:~/linux_c$ g++ -g example.c
linux@ubuntu:~/linux_c$ ./a.out 
hi main=main int main()

hi main=main main


In C, __PRETTY_FUNCTION__ is yet another name for __func__. However, in C++, __PRETTY_FUNCTION__ contains the type signature of the function as well as its bare name


https://gcc.gnu.org/onlinedocs/gcc/Function-Names.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟空胆好小

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值