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

目录
  • C语言函数
  • 第一种方法
  • 第二种方法
  • 第三种方法
  • 总结

C语言函数

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

2.函数的定义

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

return_type Function_name(Parameter List)
{
    The function body
}

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

第一种方法

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

step1:函数声明

step2:mian函数

step3:子函数

/********************************
          数组元素之和

   法一:  子函数调用
**********************************/
#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函数

/********************************
          数组元素之和

 不需要.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;
}

子函数

#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

主函数

#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;

}

子函数源文件

#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;
}

子函数头文件

#ifndef SUM_H
#define SUM_H

int sum(int N);// 子函数

#endif

结果

总结

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

(0)

相关推荐

  • C语言中函数声明与调用问题

    假如函数在调用它之前定义可以不用声明 实际上,如果在函数调用前,没有对函数作声明,则编译系统会吧第一次遇到的该函数的形式(函数定义或者函数调用)作为函数的声明,并将函数默认值类型认为int型 比如有您调用的是void max(int a,int b)系统就会把该函数当做int max(int a,int b);

  • C语言函数的递归和调用实例分析

    一.基本内容: C语言中的函数可以递归调用,即:可以直接(简单递归)或间接(间接递归)地自己调自己. 要点: 1.C语言函数可以递归调用. 2.可以通过直接或间接两种方式调用.目前只讨论直接递归调用. 二.递归条件 采用递归方法来解决问题,必须符合以下三个条件: 1.可以把要解决的问题转化为一个新问题,而这个新的问题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减. 说明:解决问题的方法相同,调用函数的参数每次不同(有规律的递增或递减),如果没有规律也就不能适用递归调用. 2

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

    目录 C语言函数 第一种方法 第二种方法 第三种方法 总结 C语言函数 1.概念:函数是一组一起执行一个任务的语句,每个c程序都必须有一个main函数,程序员可以把代码划分到不同的函数当中去,在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的.c标准库提供了可以大量调用的库函数,比如,printf,strcmp等. 2.函数的定义 c语言中函数的一般定义如下: return_type Function_name(Parameter List) { The function body }

  • ajax 三种实现方法实例代码

    ajax即异步的javascript and xml, 本文章向码农们介绍ajax的三种实现方法(prototype实现,jquery实现,XMLHttpRequest实现) 本文主要是比较三种实现Ajax的方式,为以后的学习开个头. 准备: 1.  prototype.js 2.  jquery1.3.2.min.js 3.  json2.js 后台处理程序(Servlet),访问路径servlet/testAjax: Java代码 package ajax.servlet; import j

  • Java中List排序的三种实现方法实例

    目录 前言 1.使用 Comparable 排序 2.使用 Comparator 排序 2.1 新建 Comparator 比较器 2.2 匿名类比较器 3.使用 Stream 流排序 总结 前言 在某些特殊的场景下,我们需要在 Java 程序中对 List 集合进行排序操作.比如从第三方接口中获取所有用户的列表,但列表默认是以用户编号从小到大进行排序的,而我们的系统需要按照用户的年龄从大到小进行排序,这个时候,我们就需要对 List 集合进行自定义排序操作了. ​List 排序的常见方法有以下

  • Python 列表(List) 的三种遍历方法实例 详解

    Python 遍历 最近学习python这门语言,感觉到其对自己的工作效率有很大的提升,下面废话不多说,直接贴代码 #!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__main__': list = ['html', 'js', 'css', 'python'] # 方法1 print '遍历列表方法1:' for i in list: print ("序号:%s 值:%s" % (list.index(i)

  • C语言中函数指针的三种使用方法总结

     C语言中函数指针的三种使用方法总结 在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正.写出这篇目的,就是希望大家一起成长,我也相信技术之间没有高低,只有互补,只有分享,才能使彼此更加成长. 定义方式:int (*p)(int x, int y); 实现代码: #include <stdio.h> int sum(int x, int y){ return x + y; } int reduce(int x, int y){ return x - y; } int

  • C语言魔方阵的三种实现方法

    目录 魔方阵: 1.奇数阶魔方阵  2.偶数阶魔方阵 (n=4K) 3.偶数阶魔方阵 (n=4K+2) 魔方阵: 把1到n*n排成n行n列方阵,使方阵中的每一行.每一列以及对角线上的数之和都相同,即为n阶魔方阵. 根据魔方阵的规律,我将它分为三种情况. 1.奇数阶魔方阵  规律:第一个数放在第一行的中间,下一个数放在上一个数的上一行下一列,若该位置已经有了数字即放在上个数的下面一行的相同列 用C语言编程如下: 示例:n=5; #include<stdio.h> #include<stdl

  • C语言结构体数组常用的三种赋值方法(包含字符串)

    目录 一.按照成员变量进行赋值(麻烦,好理解,字符串赋值需要strcpy) 二.对数组整体进行赋值.(一次性需要把所有的都添加进去,不需要strcpy) (1) 在声明数组的时候,进行赋值 (2)对有规律的数据赋值,比如学生结构体的学号是有规律的. 三.使用输入进行赋值 总结 一.按照成员变量进行赋值(麻烦,好理解,字符串赋值需要strcpy) 这里使用了一个Init函数,为了在进一步说明传参的使用.实际上赋值按照需要放在主函数就行. (使用strcpy函数需要添加头文件string.h) #i

  • C语言求阶乘之和的三种实现方法(先阶乘再累加)

    目录 题目: 方法一:使用一层for循环实现 代码简单快捷容易理解 方法二:使用两层for循环嵌套 方法三:函数递归实现 总结 题目: 此处题目是以1-20的阶乘之和举例 方法一:使用一层for循环实现 代码简单快捷容易理解 代码示例如下: #include<stdio.h> int main() { double a = 1, sum = 0;//因为最后值可能会超出int所能接收的范围 故用double int n, i; scanf("%d", &n);//注

  • JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法

    1.Object类 在JS中,Object是所有类的基类,使用Object类来创建自定义对象时,可以无需定义构造函数(constructor,prototype,hasOwnProperty(property)) var per = new Object(); per.name = 'zhangsan'; per.age = ; alert(per.name + per.age); 我们想在程序中得到一个对象变量,只要能存储大量数据即可,这个时候,我们可以考虑使用Object类.Object类避

  • JavaScript定义函数的三种实现方法

    JavaScript定义函数的三种实现方法 [1]正常方法 function print(msg){ document.write(msg); } 对函数进行调用的几种方式: 函数名(传递给函数的参数1,传递给函数的参数2,-.) 变量 = 函数名(传递给函数的参数1,传递给函数的参数2,-.) 对于有返回值的函数调用,也可以在程序中直接使用返回的结果,例如:alert("sum=" + square(2,3)); 不指定任何函数值的函数,返回undefined. [2]构造函数方法 

随机推荐