c与C++的混合编程

C是结构化语言,强调算法和数据结构,轻量高效;C++面向对象,强大灵活;如今C/C++的编译器能支持其混合编程,从而发挥各自优点。

C++调用C步骤:

  • C代码的头文件格式,告诉C++编译器,该头文件(C)中的函数按C编译处理:
     1 #ifdef __cplusplus
     2 extern "C" {
     3 #endif
     4 
     5 void fun(void* ,int);
     6 
     7 #ifdef __cplusplus
     8 }
     9 #endif
    10 
    11 
    12 /*helloworld.c*/
    13 #include <stdio.h>
    14 void sayhello(char *str)
    15 {
    16        printf(“hello world\n”);
    17 }
    18 
    19 /*main.cpp*/
    20 #include <iostream>
    21 using namespace std;
    22 extern “C” void sayhello(char *str);
    23 int main(int argc,char *argv[])
    24 {
    25    sayhello(“hello from cpp to c\n”);
    26    return 0;
    27 }
    C++调用C函数

     

  • 在C++源文件中用extern “C”声明,按函数调用方法调用。
  • 编译时,指定编译规则(C源文件用gcc编译器,C++用g++编译器):

    g++ -c main.cpp -o main.o

    gcc -c helloworld.c -o helloworld.o

    gcc main.o helloworld.o -lstdc++ -o main

C调用C++步骤:

  • 原本在C中定义的函数在C++中定义,并且C++中对C函数用extern “C”声明
  • C++中定义最终在C中被调用的函数,可以调用C++的所有特性进行设计。
  • C中正常调用C++中的函数。
  • 编译:

    g++ -c hello.cpp -o hello.o

    gcc -c main.c -o main.o

    gcc hello.o main.o -lstdc++ -o main

posted on 2025-10-11 17:42  杰瑞鼠  阅读(9)  评论(0)    收藏  举报