C/C++方向

  1. 1. C中如何调用C++函数
  • 网络编程

  • C中如何调用C++函数
    1. 对于非成员函数,将 C++ 函数声明为 extern "C"

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      // C++ code
      extern "C" void f(int);
      void f(int i)
      {
      //code
      }

      // C code
      void f(int);
      void ff(int i);
      {
      f(i);
      //code
      }
    2. 对于成员函数,需要简单包装

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      // C++ code
      class C
      {
      // code
      virtual double f(int);
      };

      extern "C" double call_C_f(C* p, int i) // wrapper function
      {
      return p->f(i);
      }

      // c code
      double call_C_f(struct C* p, int i);
      void ff(struct C* p, int i)
      {
      double d = call_C_f(p, i);
      // code
      }
    3. 若要调用重载函数,则需要提供不同名字的包装

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      //c++ code
      void f(int);
      void f(double);
      extern "C" void f_i(int i){ f(i) };
      extern "C" void f_d(double d){ f(d) };

      //c code
      void f_i(int);
      void f_d(double);
      void fff(int i, double d)
      {
      f_i(i);
      f_d(d);
      //code
      }

    计网

    网络编程
    • cache(缓存): cost/benefit
      • cost: 需要缓存的数据会给系统带来的代价

    内存管理

    //