欢迎来到朵拉利品网
知识中心
资讯
  • 资讯
  • 产品
  • 供应商
您的位置: 朵拉利品网 >  知识中心 > static inline 请问在C++中 static inline void A()这样的方法是个什么方法啊,重点...
static inline 请问在C++中 static inline void A()这样的方法是个什么方法啊,重点...
2019-07-24 20:21:25 来源:朵拉利品网

1, 请问在C++中 static inline void A()这样的方法是个什么方法啊,重点...



inline函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时,类似宏替换,使用函数体替换调用处的函数名。一般在代码中用inline修饰,但是能否形成内联函数,需要看编译器对该函数定义的具体处理。
用inline的函数比一般函数调用速度快, 但会占用更多内存空间
static 函数 不能被外部文件调用的,只能被在本文件调用的
如果static函数时一个类的成员函数, 那这个函数可以在没有类的实例的情况下被调用

3, C中函数inline定义问题,求解释。。。。



你没有给出具体源码,所以只能猜,据我所知,有一种情况可能符合你的描述:
这种用法,同一个文件内的inline test函数会被内联展开,其他文件的test函数,会编译成普通函数来调用。
根据你的提问可以理解为:abc.h中的test函数,被abc.h内联展开。abc.c中的test函数,被abc,c调用,与abc.h里面的test无关。如果还有def.c调用test,那么调用那个的是abc.c中的。前提是abc.c和def.c不包含abc.h,如果包含abc.h那么调用test函数的地方,会被abc.h中的test函数进行内联展开。
GCC编译器和 C99编译器代码有所不同,都可能能达到你描述代码的要求,说可能是因为我只在gcc编译器上编译过类似代码,c99的用法是网络文章说的,我没试过,所以只能说可能。

相关概念


abc

中国农业银行(AGRICULTURAL BANK OF CHINA)是中央管理的大型国有银行,国家副部级单位,成立于1951年,总部位于北京,是中国金融体系的重要组成部分。中国农业银行提供各种公司银行和零售银行产品和服务,同时开展金融市场业务及资产管理业务,业务范围还涵盖投资银行、基金管理、金融租赁、人寿保险等领域。 2009年1月15日,中国农业银行由国有独资商业银行整体改制为股份有限公司。2010年7月,农业银行在上海证券交易所挂牌上市。

函数

函数的定义:给定一个数集A,假设其中的元素为x。现对A中的元素x施加对应法则f,记作f(x),得到另一数集B。假设B中的元素为y。则y与x之间的等量关系可以用y=f(x)表示。我们把这个关系式就叫函数关系式,简称函数。函数概念含有三个要素:定义域A、值域C和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。 函数(function),最早由中国清朝数学家李善兰翻译,出于其著作《代数学》。之所以这么翻译,他给出的原因是“凡此变数中函彼变数者,则此为彼之函数”,也即函数指一个量随着另一个量的变化而变化,或者说一个量中包含另一个量。函数的定义通常分为传统定义和近代定义,函数的两个定义本质是相同的,只是叙述概念的出发点不同,传统定义是从运动变化的观点出发,而近代定义是从集合、映射的观点出发。