函数声明
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//函数声明代码放在最前面,这样保证所有函数可以顺利调用其他函数
//函数只要被声明过,就可以被其他函数进行调用
//我们可以在main函数前声明一下就可以了 以后就可以把函数定义放到后面就可以了
//函数声明
void helloworld();
//提前指明自己的函数类型,函数参数和函数返回值类型 并让main函数知道
void qtfunc1();
void qtfunc2();
void qtfunc3();
int main(int argc, char *argv[]) {
//函数调用方式和嵌套调用
//函数的调用的方式
//一般形式
//注意严格区分:函数调用和函数定义
//函数调用的一般形式:
//函数名(实参列表)
//如果调用的是没有形参的函数
//实参列表可以没有 但括号不能省略
//实参列表包含多个参数,则各个参数之间用逗号隔开
//对于函数中 如果形参包括多个参数 也用逗号隔开
//实参 形参 个数相等 类型一致 按顺序对应 一一传递
//函数调用的方式
//按照函数调用在程序中出现的位置,有三种函数调用的方式:
//a把函数作为一个语句
//printhello();
//b函数出现在一个表达式中 这种表达式成为函数表达式 这个时候:
//这个时候要求函数带回一个确定的值以参加表达式的运算
//int result = whitchmax(13,18) * 100;
//c 甚至可以函数调用可以作为 函数的参数 也就是把函数调用作为函数的实参
//int result = whitchmax(whitchmax(3,4),6);
//如果自定义函数放在main()函数后面会报错
//定义和声明 所以直接放前面
//声明:函数自己说明自己
//函数声明:
//咱们必须把函数声明放在源代码文件的具体的函数之前(一般也就是源代码的开头的)才可以保证这些具体函数调用其他函数时 这些被调用的函数时声明过的函数
//函数怎么声明的:
//类型标识符 函数名(形式参数);
helloworld();
//但是函数可以进行嵌套调用 也就是说在调用的一个函数过程中,被调用的函数再去调用第三个函数.....如果允许 可以调用第四个第五个
qtfunc1();
//输出
//Q1开始执行
//Q2开始执行
//Q3开始执行
//Q3执行结束
//Q2执行结束
//Q1执行结束
}
//我们可以在这里进行函数定义
//函数定义
void helloworld(){
printf("helloworld\n");
//禁止在一个函数中嵌套另一个函数
//void helloworld2(){}
}
//这样我们就可以把函数定义放在后面 函数声明放main前面就可以了
//每个函数都是平行和独立的 不能互相嵌套定义
void qtfunc1(){
printf("Q1开始执行\n");
//在这里虽然不可以定义函数 但是可以进行函数的调用
//这就是函数的嵌套调用
qtfunc2();
printf("Q1执行结束\n");
}
void qtfunc2(){
printf("Q2开始执行\n");
qtfunc3();
printf("Q2执行结束\n");
}
void qtfunc3(){
printf("Q3开始执行\n");
printf("Q3执行结束\n");
}