C语言知识点二十四: 函数

《函数》

        1. 如何编写一个好的程序: 

       使程序模块化。所谓模块化,就是在您的主函数中要实现某种功能时,尽量单独地写一个函数,当您要用此功能时再调用您写的函数即可。前面介绍的printf(), scanf(), getchar(), putchar()以及strlen(),这些函数都是标准的C库函数,并且都被预先定义在C库中。

        2. 为什么使用函数?

        第一:函数的使用可以省去重复代码的编码。如果程序需要多次使用某种特定的功能,那么只需编写一个合适的函数即可,需要实现此功能就调您编写的函数即可。

         第二:即使某种功能在程序中只使用一次,将其以函数的形式实现也是有必要的,因u为函数使得程序更加模块化,从而有利于程序的阅读,修改和完善

         3. 编写和使用一个简单的函数(不带参数的函数):

#include<stdio.h>
#define NAME "GIGATHINK, INC."
#define ADDRESS "101 Megabuck Plaza"
#define PLACE "Magaplis.CA 94904"
#define WIDTH 40

void starbar(void);//声明函数原型

int main(void)
{
    starbar();
    printf("%s\n", NAME);
    printf("%s\n", ADDRESS);
    printf("%s\n", PLACE);
    starbar();//使用函数

    return 0;
}

void starbar(void)//定义函数
{
    int count;

    for(count = 1; count <= WIDTH; count++)
    {
        putchar('#');
    }
    putchar('\n');
}

程序输出如下:

程序解释与评价:

(1). void starbr(void);

    1). 圆括号表明starbr是一个函数名;

    2). 第一个void: 指的是函数类型,而且该函数没有返回值第二个void: 表明函数不接受任何参数

    3). 分号表示语句是进行函数声明而不是函数定义。

         这一行表明了程序将使用一个名为starbar()且函数类型为void的函数。

(2). starbar()原型置于main()之前;也可将其置于main()之内,可以放置变量声明的任何位置。

(3). starbar()中的变量count是一个局部变量,如果在别的函数声明变量用count来命名也是可以的,不会出现任何冲突。

    即:您可以用同一名称的多个单独的,互不相关的变量

     4. 在3中的程序的基础上,将函数变为代有参数的函数:

#include<stdio.h>
#include<string.h>
#define NAME "GIGATHINK, INC."      //为strlen()提供原型
#define ADDRESS "101 Megabuck Plaza"
#define PLACE "Magaplis.CA 94904"
#define WIDTH 40
#define SPACE ' '


void show_n_char(char ch, int num);//声明函数原型

int main(void)
{
    int spaces;

    show_n_char('*', WIDTH);//使用常量作为参数
    putchar('\n');
    show_n_char(SPACE, 12);//使用常量作为参数
    printf("%s\n", NAME);
    spaces = (WIDTH - strlen(ADDRESS))/2;

    show_n_char(SPACE, spaces);
    printf("%s\n", ADDRESS);
    show_n_char(SPACE, (WIDTH - strlen(ADDRESS))/2);

    printf("%s\n", PLACE);
    show_n_char('*', WIDTH);
    putchar('\n');

    return 0;
}

//show_n_char()定义
void show_n_char(char ch, int num)//定义函数
{
    int count;

    for(count = 1; count <= num; count++)
    {
        putchar(ch);
    }
}

程序输出如下:

程序解释与评价: 

(1). void show_n_char(char ch, int num); 这一步可以写成void show_n_char(char, int )。这是因为在原型中使用变量名并没有实际地创建变量。只是说明char代表了一个char类型变量,以此类推。

(2). 实际参数和形式参数:

(3). 函数声明和函数定义:

函数声明:只是将函数类型告诉编译器;

函数定义:函数实现实际代码。

猜你喜欢

转载自blog.csdn.net/weixin_41588502/article/details/81299163