服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C语言函数调用的三种实现方法实例

C语言函数调用的三种实现方法实例

2022-09-03 14:48ML__LM C/C++

C语言中函数的调用主要有如下三种方法,直接调用,函数指针调用,函数指针传递调用其中后两种本质一样,但在有无返回值时还稍有差别,下面这篇文章主要给大家介绍了关于C语言函数调用的三种实现方法,需要的朋友可以参考下

C语言函数

1.概念:函数是一组一起执行一个任务的语句,每个c程序都必须有一个main函数,程序员可以把代码划分到不同的函数当中去,在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。c标准库提供了可以大量调用的库函数,比如,printf,strcmp等。

2.函数的定义

c语言中函数的一般定义如下:

?
1
2
3
4
return_type Function_name(Parameter List)
{
    The function body
}

定义函数时会定义这个函数要做什么,然后通过调用该函数来完成定义的任务。当程序调用函数时,程序控制权会转移给被调用的函数。被调用的函数执行已定义的任务,当函数的返回语句被执行时,或到达函数的结束括号时,会把程序控制权交还给主程序。下面是具体调用函数的例子:

第一种方法

在一个.c文件里面进行子函数调用

step1:函数声明

step2:mian函数

step3:子函数

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/********************************
          数组元素之和
 
   法一:  子函数调用
**********************************/
#include<stdio.h>
 
#define M 10   // 数组元素个数
int num[M]={1,2,3,4,5,6,7,8,9,10};
 
/********************************
            函数声明
**********************************/
int sum(int * start, int * end);
 
/********************************
            main函数
**********************************/
int main(void)
{
    long answer;
    answer=sum(num,num+M);
    printf("The total number is %ld.\n",answer);
    return 0;
}
 
/********************************
            子函数
**********************************/
int sum(int * i, int * end)
{
    int total=0;
    while(i<end)
    {
    total+=*i;// 把数组元素的值加起来
    i++;  // 让指针指向下一个元素
    }
    return total;
}

第二种方法

调用外部的C文件

main函数

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/********************************
          数组元素之和
 
 不需要.h文件,直接调用外部函数的方法
**********************************/
 
#include<stdio.h>
#include "D:\mwq\LAB\z7\ARM\VC\extern_get_c_file_v2\sum.c"//调用外部函数   路径+外部函数名
 
#define M 10   // 数组元素个数
int num[M]={1,2,3,4,5,6,7,8,9,10};
 
 
/********************************
            main函数
**********************************/
int main(void)
{
    long answer;
    answer=sum(num,num+M);//调用求和函数
    printf("The total number is %d.\n",answer);
    return 0;
}

子函数

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
 
/********************************
 函数功能:求和
 输入参数:素组的首尾地址
 输出参数:素组所有元素之和
**********************************/
int sum(int * i, int * end)
{
    int total=0;
    while(i<end)
    {
    total+=*i;// 把数组元素的值加起来
    i++;  // 让指针指向下一个元素
    }
    return total;
}

第三种方法

注:这种方法的实现平台为SDK,但思想一样。

一个main.c 。

子函数源文件用sum.c 表示;子函数头文件用 sum.h表示。

有几个子函数就有几个sum.c 和 sum.h

主函数

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include "platform.h"
#include "xil_printf.h"
#include "sleep.h"
#include "sum.h"
 
#define M 10
int answer;
 
int main()
{
 
    init_platform();
 
    print("Hello World\n\r");
    print("you are my book\n\r");
 
 
    answer=sum(M);//调用求和函数
    printf("The total number is %d.\n",answer);
 
    cleanup_platform();
    return 0;
 
}

子函数源文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include"sum.h"
 
/********************************
 函数功能:求和
 输入参数:素组的首尾地址
 输出参数:素组所有元素之和
**********************************/
int sum(int N)
{
    int i;
    int total=0;
    for(i=0;i<=N;i++)
    {
        total=total+i;// 把数组元素的值加起来
    }
    return total;
}

子函数头文件

?
1
2
3
4
5
6
#ifndef SUM_H
#define SUM_H
 
int sum(int N);// 子函数
 
#endif

结果

C语言函数调用的三种实现方法实例

总结

到此这篇关于C语言函数调用的三种实现方法的文章就介绍到这了,更多相关C语言函数调用方法内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_46136963/article/details/113359434

延伸 · 阅读

精彩推荐