函数分类

  标准库函数:C语言的标准库函数中有很多提前写好了放进去的函数,而我们只需要在敲代码的时候,在开头写上对应的头文件,就可以直接调用这些函数,非常的方便,例如:

#include <stdio.h>

int main(){
    printf(“我爱编程!\n”);
    return 0;    
}

  这其中的“printf”就是打印输出函数,而包含它的头文件就是“stdio.h”。有了这些库函数,可以提高我们编程的效率,减少我们的工作量。

  然而标准库函数有很多,那我们要不要背下来呢?当然是不需要的,因为不是每一个库函数我们都会用到,常用的也就那几个,不常用的我们可以借助官方文档查阅即可。在敲代码的过程中,不断的使用,不断地查阅,熟能生巧,自然会熟记于心。

  另外,最重要的一点是,若是你记忆的东西稍有偏差,那么损失的代价将不可估量;而我们查阅文档,就可以得到一个非常正确的答案,相比犯错误的损失,查阅文档浪费的时间就不值一提了。

  因此,作为一个程序员,要养成经常查阅文档的良好习惯,这对我们的收益是非常大的。我给大家推荐一个网址:

  http://www.cplusplus.com/

  这是C语言国际委员会编写的文档,也是最为准确的文档。建议大家经常查阅,有百利而无一害。

  第三方库函数:C语言的标准库函数是非常少的,因为作为最早一批的高级编程语言,当时的条件有限,C语言使用的地方也有限,所以导致了库函数并不丰富,和现在流行的java的库函数比起来,简直就是小巫见大巫。

  所以很多除官方以外的大佬自己写了些库函数,来丰富C语言的函数库,这些称之为第三方库函数,但是由于这是第三方的,所以使用起来必须得在特定的条件下,例如:

#include<stdio.h>

int main(){
    int num=0;
    scanf("%d",&num);//
    scanf_s("%d",&num);//
    return 0;
}

 

  很多人在vs上使用“scanf”函数时,肯定会遇到报错的问题,这是因为:

  ①scanf()函数是标准C中提供的标准输入函数,用以用户输入数据。

  ②scanf_s()函数是Microsoft公司VS开发工具提供的一个功能相同的安全标准输入函数,在调用该函数时,必须提供一个数字以表明最多读取多少位字符。

  scanf()在读取数据时不检查边界,所以可能会造成内存访问越界,而使用scanf_s()就可避免这个问题。所以说这是vs这个编译器出了问题,而不是你代码出了问题。而scanf_s()就是微软自己写的第三方库函数,来解决这个问题。

  自定义函数:什么是自定义函数,从字面意上来看就是,我们程序员自己写的一些函数,那么自己如何来自定义函数呢?如下:

dataType  functionName( dataType1 param1, dataType2 param2 ... ){
    //body
}

  中文解释就是:返回值类型 函数名(参数){功能/内容};

 

  自定义函数可以没有返回值;也可以没有参数;还可以既没有返回值也没有参数;具体如下:

//无返回值,一般情况使用void
void max(int n,int m){
    if(n<m){
        printf("%d<%d\n",n,m);
    }
    else if(n>m){
        printf("%d>%d\n",n,m);
    }
    else{
         printf("%d=%d\n",n,m);
    }
}
//无参数
int print(){
    printf("我爱编程!\n");
    return 0;
}
//无返回值,无参数
void print(){
    printf("我爱编程!\n");
}