温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++对全局函数的处理方式是什么

发布时间:2021-11-29 16:44:42 来源:亿速云 阅读:118 作者:iii 栏目:编程语言

这篇文章主要介绍“C++对全局函数的处理方式是什么”,在日常操作中,相信很多人在C++对全局函数的处理方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++对全局函数的处理方式是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

为什么标准头文件都有类似以下的结构?

#ifndef __INCvxWorksh  #define __INCvxWorksh   #ifdef __cplusplus  extern "C" {  #endif   /*...*/   #ifdef __cplusplus  }  #endif   #endif /* __INCvxWorksh */

那么:

#ifdef __cplusplus  extern "C" {   #endif    #ifdef __cplusplus  }  #endif


而在C语言的头文件中,对其外部函数只能指定为extern类型,C语言中不支持extern "C"声明,在.c文件中包含了extern "C"时会出现编译语法错误。

/* c语言头文件:cExample.h */  #ifndef C_EXAMPLE_H  #define C_EXAMPLE_H  extern int add(int x,int y);  #endif  /* c语言实现文件:cExample.c */  #include "cExample.h"  int add( int x, int y )  {   return x + y;  }  // c++实现文件,调用add:cppFile.cpp  extern "C"   {   #include "cExample.h"  }  int main(int argc, char* argv[])  {   add(2,3);    return 0;  }

在C中引用C++语言中的函数和变量时,C++的头文件需添加extern "C",但是在C语言中不能直接引用声明了extern "C"的该头文件,应该仅将C文件中将C++中定义的extern "C"函数声明为extern类型。

//C++头文件 cppExample.h  #ifndef CPP_EXAMPLE_H  #define CPP_EXAMPLE_H  extern "C" int add( int x, int y );  #endif  //C++实现文件 cppExample.cpp  #include "cppExample.h"  int add( int x, int y )  {   return x + y;  }  /* C实现文件 cFile.c  /* 这样会编译出错:#include "cExample.h" */  extern int add( int x, int y );  int main( int argc, char* argv[] )  {   add( 2, 3 );    return 0;

到此,关于“C++对全局函数的处理方式是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI