博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【C++第二课】---C到C++的函数升级
阅读量:7143 次
发布时间:2019-06-29

本文共 1419 字,大约阅读时间需要 4 分钟。

C++中对C语言在函数使用方面做了很大的升级

一﹑内联函数

1.C++中推荐使用内联函数来替代宏片段代码

2.C++中使用关键字inline声明内联函数

例如:

 

inline  int  func(int a, int b){	return (a > b)?a:b;}

 

需要注意的地方:

 

a.内联函数声明时inline关键字必须和函数体定义的地方结合在一起,否则编译器会忽视内联请求

b.当然如果在声明的时候对进行一些处理,那么编译器还是可以对函数的进行内联请求的,声明的时候需要加上 __attribute__((always_inline))

c.内联函数虽然是对代码进行替换,但是是有参数检查的,所以这是在编译阶段进行的,要区别于宏(与编译阶段进行)

3.内联函数编译的限制

a.不能存在任何形式的循环语句

b.不能存在过多的条件判断

c.函数体不能过于庞大

d.不能对函数进行取址操作

e.内联函数的使用之前必须声明

二﹑函数的默认参数

1.C++在对函数进行声明的时候可以指定函数参数的默认值,举例如下

 

#include 
using namespace std;int add(int i = 1,int j = 2);int main(void){ int result = 0 ; result = add(1,1); cout<<"i + j ="<
<

 

下面的例子是一样的

 

 

#include 
using namespace std;int add(int i = 1,int j = 2){ return i+j;}int main(void){ int result = 0 ; result = add(1,1); cout<<"i + j ="<
<

 

注意的地方:

 

a.一旦在一个函数调用中开始使用默认参数值,,那么这个参数后的所 那么这个参数后的所

有参数都必须使用默认参数值

b.占位参数只有参数类型声明,,而没有参数名声明,占位参数只为功能扩展所用(个人理解)

三﹑函数的重载

1.函数重载的特点

a.用同一个函数名定义不同的函数

b.当函数名和不同的参数搭配时函数的含义不同

c.当返回值类型不同的时候,不能看作函数重载(函数返回值不能作为函数重载的依据)

2.函数指针遇到函数重载会怎样做呢?  看一个实例

 

#include 
using namespace std;int fun(int a){ int m = a; cout<<"m = "<
<

 

打印的内容如下:

 

 

m = 1m = 2m = 3

 

所以可以总结出:

 

根据重载规则挑选与函数指针参数列表一致的候选者

严格匹配候选者的函数类型与函数指针的函数类型

这是编译器在编译的时候进行的.

四﹑C和C++的互相调用

当在进行大项目开发的时候,我们经常能够碰到这样的问题,有些组员使用的C开发的,而有的组员使用的是C++开发的,那么我们如何实现C和C++的互相调用呢?

虽然C++编译器能够兼容C语言的编译方式,,但但C++编译器
会优先使用C++的方式进行编译
利用extern关键字强制让C++编译器对代码进行C方式编译

 

转载地址:http://argrl.baihongyu.com/

你可能感兴趣的文章
Hibernate-ORM:13.Hibernate中的连接查询
查看>>
CentOS7的/tmp目录自动清理规则
查看>>
Senior Manufacturing Technical Manager
查看>>
Spring IOC 理解
查看>>
poj2551
查看>>
day8:vcp考试
查看>>
markdown表情
查看>>
位运算专题
查看>>
Iframe 用法的详细讲解
查看>>
36.创建自定义的指令directive
查看>>
Web Service 实践之 REST vs RPC
查看>>
SQL Server认证培训与考试
查看>>
Oracle EBS-SQL (SYS-11):查询系统已打的PATCH.sql
查看>>
转 PV操作简单理解
查看>>
微服务开发中的数据架构设计
查看>>
[转] Linux下查看用户列表
查看>>
VC++异常捕获??
查看>>
【Foreign】无聊的计算姬 [Lucas][BSGS]
查看>>
Js获取元素样式值(getComputedStyle&currentStyle)兼容性解决方案
查看>>
地理杂志精选照片
查看>>