首页 > 编程语言 > 详细

C/C++基础----函数

时间:2018-09-03 02:07:29      阅读:169      评论:0      收藏:0      [点我收藏+]

用实参初始化形参时会忽略掉顶层const。

尽量使用常量引用,普通引用会限制所能接受的实参类型,也会给调用者误导。

 

管理数组实参的3种方法:

  • 数组本身包含一个结束标记
  • 传递指向数组首尾元素的指针
  • 定义一个表示数组大小的形参

 

可变形参的函数

如果实参类型相同,可用initializer_list模板类型;如类型不同,使用可变参数模板。

初始化列表支持size() begin() end() ,拷贝和赋值不会拷贝元素,而是共享。

 

返回数组指针

typedef int arrT[10];

using arrT=int[10];

arrT* func(int i);

 

不用类型别名声明函数

int (*func(int i)) [10];

 

使用尾置返回类型

auto func(int i) -> int (*) [10];

 

使用decltype

 

const重载

顶层const不区分,所以不能重载

底层const可以重载,const对象只能传递给const形参,而非常量对象编译器优先调用非常量的版本。

 

assert(expr)   NDEBUG

当为真的时候,什么都不做;为假时输出信息并终止程序的执行。

依赖于NDEBUG预处理变量的状态

NDEBUG还可用于编写调试代码

编译器定义的几个有用的变量

__func__           当前调试的函数的名字const char数组

__FILE__           存放文件名的字符串字面值

__LINE__         存放当前行号的整型字面值

__TIME__         存放文件编译时间的字符串字面值

__DATE__         存放文件编译日期的字符串字面值

C/C++基础----函数

原文:https://www.cnblogs.com/logchen/p/9576054.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!