extern"C"的用法
在 C++ 程序中,可以使用 extern"C" 标注C语言代码,编译器会将 extern"C" 标注的代码以C语言的方式编译。
使用 extern"C" 标注C语言代码的格式具体如下:
声明:《C++系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
使用 extern"C" 标注C语言代码的格式具体如下:
extern"C"
{
// C语言代码
}
1) mallocStr.h
#include<stdio.h> #include<stdlib.h> char* func(int,char*)
2) mallocStr.c
#define _CRT_SECURE_NO_WARNINGS
#include"mallocStr.h"
char* func(int size,char *str)
{
char* p =malloc(size);
strcpy(p,str);
return p;
}
3) main.cpp
#include<iostream>
using namespace std;
#ifdef __cplusplus
extern"C"
{
#endif
#include"mallocStr.h"
#ifdef __cplusplus
}
#endif
int main()
{
char str[]="C++";
char *p=func(sizeof(str)+1,str);
cout<<p<<endl;
free (p);
return 0;
}
运行结果:
C++
示例分析:- mallocStr.h 文件和 mallocStr.c 文件所示代码是C语言程序。其中,mallocStr.c 文件中定义了 func() 函数,在函数内部调用 malloc() 函数申请一块内存空间存储一个字符串。func() 函数第一个参数指定申请内存的大小,第二个参数是存入内存空间的字符串。
- main.cpp 中,程序调用了 func() 函数,则需要使用 extern"C" 声明 mallocStr.h 文件内容以C语言的方式编译。
声明:《C++系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
ICP备案:
公安联网备案: