extern c 和extern c++

博客介绍了使用g++编译时的情况。当my_c_function.h中有extern “C” 时,采用C编译方式,调用时若不使用extern \C\ 会编译失败;若my_c_function.h中没有extern “C” ,则采用C++编译方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// my_c_function.c
//
#include <stdio.h>
#include "my_c_function.h"

void print_hello_from_c() {
    printf("Hello from C!\n");
}
// my_c_function.h

extern "C"
{
        void print_hello_from_c();
}
// my_cpp_code.cpp
//
#include "my_c_function.h"
extern "C" {
   void print_hello_from_c();
}

int main() {
    print_hello_from_c(); // 调用C函数
    return 0;
}
g++ -o  my_c_function.o -c my_c_function.c -I ./
g++ -o  my_cpp_code.o -c my_cpp_code.cpp
g++ my_c_function.o my_cpp_code.o -o my_program

用g++ 编译时,如果my_c_function.h 里面有extern “C” 是c的编译方式, 调用如果不extern "C" 会编译失败

// my_c_function.h

print_hello_from_c 


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值