一、函数定义

1.定义无参数函数

#include <stdio.h>

void printWelcome()
{
	printf("======================\n");
	printf("欢迎来到我的程序,baby\n");
	printf("======================\n");
}
//只关心数据和值
int getDataFromX(int x)//形式参数,需包含变量类型、变量名
{
	int data;
	data = x-1;
	return data; 
}

int main()
{
	int x;
	int y;
	
	printWelcome();
	puts("请输入一个数:");
	scanf("%d",&x);
	y = getDataFromX(x);
	printf("x=%d,y=%d\n",x,y);
	return 0;
}

 

2.定义有参数有返回值的函数

#include <stdio.h>

//三要素:函数名、参数列表、返回值
int add(int data1,int data2)//函数原型
{
	int ret;
	ret = data1 + data2;
	return ret;
}

int main()
{
	int x;
	int y;
	int z;
	
	puts("请输入一个数:");
	scanf("%d",&x);
	puts("请再输入一个数:");
	scanf("%d",&y);
	z = add(x,y);
	printf("%d+%d=%d\n",x,y,z);
	return 0;
}

3.定义空函数:程序设计,模块设计的时候,占坑 

二、函数调用

1.常见错误:

(1)int  add(2,3):带了返回值类型

(2)add(int a, int b):形参带类型了

2.见怪不怪:

(1)函数可以当做表达式: 

(2)函数调用当做其他函数调用的参数:

 

3.调用过程

(1)内存空间

 (2)值传递

(3)值返回:如果函数返回类型是void,函数体可以不用加return,返回值要注意类型,如果类型不同,可能会发生强制转换影响结果或编译警告

 

(4)内存释放

4.调用条件

(1)函数已被定义

(2)调用库函数 

(3)函数的声明

 

 

 

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐