top of page
  • Writer's pictureLingheng Tao

C++ Programming #5 Functions

Updated: Jan 18


这篇笔记主要是关于 C++ 中常见的函数以及相关的知识点。

基本知识


要使用一个 C++ 函数,必须完成以下三个工作:

  • 提供函数的定义(Definition)

  • 提供函数的原型(Prototype)

  • 调用该函数(Reference / Call)


定义函数


没有返回值的函数被称为 void 函数,可以没有return,所以有时也会被称为过程或者子程序。有返回值的函数则必须要有 return。

void FunctionName (paramList) {
    statements;
    return; // optional
}

int FunctionNameAnother (paramList) {
    statements;
    return 0; // must return an int
}

参数列表 paramList 中,每个参数都必须要指明其类型。


通常,函数通过将返回值复制到指定的 CPU 寄存器(Register)或内存单元中来将其返回。


函数原型


C++ 要求给函数提供它的原型。因此,我们要了解这背后的原因,以及如何提供原型。


原因


原型将函数返回值的类型和参数的类型、数量告诉了编译器。如果让编译器在每次使用函数的时候就全文查找,可能效率不高,因为它必须从 main() 中跳出。而且函数可能根本不在文件内,C++ 允许将一个程序放在多个文件中,单独编译这些文件然后再将它们组合起来。在这种情况下,编译器在编译main() 时,可能还无权访问这些函数代码,所以我们会希望有函数原型提供这些信息。


语法


基本上,只要将函数实现的花括号部分整个删除改成分号即可。在函数原型中,参数的名字不重要,甚至可以不写。

// prototype
double Volume(int h, int w, int d);
// or double volume(int, int, int);

// definition
double Volume(int h, int w, int d) {
    return h * w * d;
}

按值传递


C++ 通常按值传递,意思是它会在函数运行时创建新的变量,用来存传进来的参数。这样,传进来的参数本身不会受到函数语句的影响。


在函数中声明的变量是私有的。函数被调用时,计算机将为这些变量分配内存,在函数结束时,计算机将释放这些变量使用的内存。



函数指针


内联函数


重载


模板



21 views0 comments

Recent Posts

See All

Comments


bottom of page