C语言教程系列——函数

一、函数定义
函数返回值类型 函数名(无参 / 有参 [ 可以有多个参数 ])
{
  函数体部分
  
  ....
  
  返回值 【 函数返回值类型为 void 就不写返回值 】
}

注: 1. /* XXXXXXX */    /**/ w为多行注释标识符
   2. // XXXXX       // 为单行注释标识符

/* 1. 无参数 无返回值 的函数
  蓝色部分为函数返回值类型: 当前无返回值为 void 
  红色部分为函数名: print_hello
  括号里面为参数: 当前没有 
  花括号里面的是函数体: 表示当前这个函数名为 print_hello 的函数
执行内容就在花括号里面 出去之后就不是了 起限制所要执行代码的范
围的作用
*/
void print_hello()
{
	// printf也是个函数 输出数据的函数 当前有参数传入
	printf("**************************\n");          
	printf("********* Hello! *********\n");
	printf("**************************\n");
}

/* 2. 无参数 有返回值 的函数
  蓝色部分为函数返回值类型: 当前有返回值为 int 整数类型
  红色部分为函数名: sum_1
  里面为参数: 当前没有
  花括号里面的是函数体: 表示当前这个函数名为 sum 的函数
执行内容就在花括号里面 出去之后就不是了 起限制所要执行代码的范
围的作用 它返回变量 a 和 b 的和
*/
int sum_1()
{
	int a = 1;
	int b = 2;
	
	return a + b;
}

/* 3. 有参数 有返回值 的函数
  蓝色部分为函数返回值类型: 当前有返回值为 int 整数类型 
  红色部分为函数名: sum_2
  括号里面为参数: 当前为 int类型的参数变量 a 和 b
  花括号里面的是函数体: 表示当前这个函数名为 sum 的函数
执行内容就在花括号里面 出去之后就不是了 起限制所要执行代码的范
围的作用 它返回变量 a 和 b 的和
*/
int sum_2(int a, int b)
{	
	return a + b;
}

二、调用函数
函数名(无参 / 有参 [ 可以有多个参数 ]);

// 调用函数 1
print_hello();

// 调用函数 2
int sum1 = sum_1();

// 调用函数 3
int a = 2;
int b = 4;
int sum2 = sum_2(a, b);

main.cpp

/* *****************************************************
	预编译 stdio.h 头文件 相当于导入 python 的某某库
* ******************************************************/
#include<stdio.h>

void print_hello()
{
	printf("**************************\n");          
	printf("********* Hello! *********\n");
	printf("**************************\n");
}

int sum_1()
{
	int a = 1;
	int b = 2;
	
	return a + b;
}

int sum_2(int a, int b)
{	
	return a + b;
}

// 调用函数 1
print_hello();

// 调用函数 2
int sum1 = sum_1();   // 注意变量名不能和函数名同名 不然会混淆

// 调用函数 3
int a = 2;
int b = 4;
int sum2 = sum_2(a, b);

执行结果

Compiling…
main.cpp
F:\Microsoft Visual Studio\MyProjects\newas\main.cpp(30) : error C2556: ‘int __cdecl
print_hello(void)’ : overloaded function differs only by return type from ‘void __cdecl print_hello(void)’
F:\Microsoft Visual Studio\MyProjects\newas\main.cpp(8) : see declaration of ‘print_hello’
F:\Microsoft Visual Studio\MyProjects\newas\main.cpp(30) : error C2371: ‘print_hello’ :
redefinition; different basic types
F:\Microsoft Visual Studio\MyProjects\newas\main.cpp(8) : see declaration of ‘print_hello’
F:\Microsoft Visual Studio\MyProjects\newas\main.cpp(38) : error C2086: ‘sum’ :
redefinition
Error executing cl.exe.
newas.exe - 3 error(s), 0 warning(s)

报错:原因 没写主函数 main , 它是整个程序的入口,在 C 语言中,一个 exe 程序一定会有一个 main 函数,没写就会出错 它也是函数 但是它的名字固定为 main,在程序运行的时候,会先找 main 函数的位置进入它的函数体中顺序执行里面代码;而编译过程他是从 cpp 文件的第一行开始向下执行代码,它先识别出所有位于 main 函数之前的头文件或者函数,然后运行的时候就知道了。

main.cpp

#include<stdio.h>

void print_hello()
{
	printf("**************************\n");          
	printf("********* Hello! *********\n");
	printf("**************************\n");
}

int sum_1()
{
	int a = 1;
	int b = 2;
	
	return a + b;
}

int sum_2(int a, int b)
{	
	return a + b;
}
  
int main()
{
	printf("调用函数 1\n");
	print_hello();

	printf("调用函数 2\n");
	int sum1 = sum_1();
	printf("sum1: %d\n", sum1);

	printf("调用函数 3\n");
	int a = 2;
	int b = 4;
	int sum2 = sum_2(a, b);
	printf("sum2: %d\n", sum2);

	return 0;
}  

执行结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值