C语言函数调用的三种实现方法实例
时间:2022-03-12 08:48:57|栏目: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
结果