【C语言】函数的声明,调用和执行(以及使用它的理由)

注:该博文内代码均为C++编写

        C语言中,存在不少现成的可用函数,如sqrt(square root),pow(power),strlen(string length)等;但在实际运用中,我们有时仍会需要自行定义一些函数,以及......“合理地”偷懒⁄(⁄⁄•⁄ω⁄•⁄⁄)⁄

        也正因为C语言中函数的广泛性,我们才有了这位省时省力的多面手,即便面对冗杂繁复的机械性任务,也能轻!松!解!决!

到底能干嘛?

少些变量

进行部分运算/操作(比如“交换”)时,会需要定义一个中间量,比如temp,这个在上次已经提到过了→一维数组中,实现对任意元素的交换_只冈不布奥的博客-CSDN博客

现在,只需要事先声明exchange

#include<iostream>
using namespace std;
int a= 0, b= 0;
void exchange(int a, int b)
{
      int p;
        if(a < b)
        {
        p = a; a = b ; b = p;
        }
}

然后,在main()里调用即可  ↓

int main()
{
    cin>>a>>b;
    exchange(a,b); 
    cout<<a<<" "<<b<< endl;
    return 0;
}
省点if

尽管C中已有abs()代表取绝对值(absolute),但为了阐述方便,我们只能“假装”现在就根本“没有”和绝对值有关的函数,那么取绝对值时,我们只能......↓

#include <iostream>
using namespace std;
int main()
{
    int m = -123, resultA= 0;
        if(m < 0)
            return(-m);
        else 
            return m;
    cout << resultA;
    int n = -456, resultB= 0;
        if(n < 0)
            return(-n);
        else 
            return n;
    cout << resultB;
//......这里只有m,n两个变量,其实实际情况还会有更多
    return 0; 
}

一个变量,一个if...else,一个变量,再一个if...else······我们当然不希望写这样的代码(哪怕复制粘贴也能实现)

相比之下,声明absolute()之后,只用打出result = absolute(m)就行了(*/ω\*)

#include <iostream>
using namespace std;
int absolute(int n)
{
    if(n < 0)
        return(-n);
    else 
        return n;
}
int main()
{
    int m = -123, result= 0;
    result = absolute(m);
    cout << result;
    return 0; 
}
懒得打字(?)

        哪怕只是纯粹的不想打字,甚至连复制粘贴都不想用,函数也能救你于水火之中(除非你这函数名字长到离谱)

示例:“系统报错”函数

#include <iostream>
using namespace std;
void show()
{
    cout<<"***********************************"<<endl;
    cout<<"*    System error has occurred.   *"<<endl;
    cout<<"*Please contact the administrator.*"<<endl;
    cout<<"*    Sorry for the inconvenience. *"<<endl;
    cout<<"***********************************"<<endl;
}
int main()
{
    show();//没错,至少省了几个cout(*/ω\*)
    return 0;
}

如果出错的情况有很多,不要紧,直接打个show()就完事!(毕竟系统报错只有一种)

输出结果长这样 

***********************************
*    System error has occurred.   *
*Please contact the administrator.*
*    Sorry for the inconvenience. *
***********************************

但前提是,你已经声明过它了↙

函数的原型/声明

        函数原型(Signature,也可译为“签名”),即函数的返回类型函数名,和参数表构成的一个符号串(参数可不写名字)

           →      bool checkPrimeint)   ←

        函数的声明一般在main()的前面(其实main本身也是个函数),就比如刚才提到的absolute(),exchange()等,都是在main()前声明。

        在C语言中,函数声明就是函数原型,这倒省了不少麻烦(*・ω-q)

函数的调用/执行

        我们所声明的函数,一般会在main()内使用;而每个函数会单独占用空间,并在main()中进行调用。

        调用过程十分简洁(如abs()),只需要单独打出函数名,括号内套进参数/变量即可(不套也行)

e.g: 

  • exchange(a,b)
  • abs(m)
  • show()

附:常见的缩写方式

  • 保留开头:abs(absolute)pow(power)int(integer)
  • 保留词组首尾/合并无声音节:sqrt(square root)
  • 保留词组开头:atoi(array to int)

猜你喜欢

转载自blog.csdn.net/m0_54909552/article/details/131907329