• 获得类成员函数地址



    void mm1()
    {
        printf(
    "mm1");
        
    return;
    }

    class TTG
    {
    public:

        
    int a;
        
    void m()
        {
            printf(
    "m");
            
    return;
        };
        
    void c()
        {
            printf(
    "c");
            
    return;
        };
    };


    void mm2()
    {
        printf(
    "mm2");
        
    return;
    }

    int main(int argc, char* argv[])
    {
        printf(
    "Hello World!\n");
        TTG g;
        typedef 
    void (TTG::* PF)(void);

        PF pt
    = g.m;
        PF pt1
    = TTG::m;
        DWORD addr
    =*(DWORD*)&pt;

        printf(
    "%d %d %d %d \n",pt,pt1,addr,TTG::m);

        printf(
    "TTG::m %d TTG::c %d\n",g.m,g.c);
        DWORD add1
    =(DWORD)mm1;
        DWORD add2
    =(DWORD)mm2;

        printf(
    "mm1:%d mm2:%d\n",add1,add2);

        
    return 0;
    }
    Hello World!

    4198528 4198528 4198528 4198528
    TTG::m 4198528 TTG::c 4198544
    mm1:4198400 mm2:4198416

    该结果要在release下才能正确
    debug版作了其他的处理,会导致结果不正确。
  • 相关阅读:
    HBase性能调优
    HBase原理和设计
    HBase 架构脑图
    Hadoop
    Hadoop YARN架构设计要点
    Hadoop-YARN
    Hadoop-HDFS
    TCP传输
    分布式系统常见的事务处理机制
    Zookeeper Client简介
  • 原文地址:https://www.cnblogs.com/ahuo/p/1580167.html
Copyright © 2020-2023  润新知