函数
#include<stdio.h>
#include<stdlib.h>//导入scanf函数
#include<time.h>
int main(void){
//创建随机种子,time 获取当前系统时间,并将当前时间当祖宗随机种子
srand(unsigned int)time(NULL);
//0-9的随机数
rand()%10;
}
1.函数的结构
数据类型 函数名(参数列表)
{
代码体;
返回值;
}
int main(void)
{
printf("...............")
return 0;
}
//定义函数
int add(int a , int b)
{
int sum = a + b;
return sum;
}
//函数的调用
int main(void)
{
int a = 10;
int b = 20;
int sum;
sun=add(a, b)
return;
}
return 返回的类型需要和函数的类型保持一致,如果不一致会强制转为函数的类型,如果强制转换失败程序会报错
函数在调用的时候会在
void change(int a,int b)
{
int temp=a;
b=temp;
a=b;
return 0;
}
int main(void)
{
int a = 10;
int b = 20;
printf("交换前");
pritnf("a =:%d",a)
printf("b = %d",b)
//函数调用
change(a,b);
printf("交换后");
pritnf("a =:%d",a)
printf("b = %d",b)
}
//输出为:
交换前
a = :10
b = :20
交换后
a = :10
b = :20
地址空间临时增加地址空间,在函数调用结束以后立即销毁,
全局变量和局部变量:
- 在函数外定义,可被本文件及其它文件中的函数所共用,若其它文件中的函数调用此变量,须用extern声明
- 全局变量和局部变量可以重名,但是如果函数内定义一个同全局变量同名的局部变量,函数在调用的时候会根据就近原则,优先使用函数内部自己定义的变量
宏定义:
1. 定义常量:#define NUM 100//定义NUM=100,在函数内可以直接使用NUM就代表NUM=100,但是只能调用,不能赋值。但是允许在其他宏定义里调用和修改已经定义后的宏如
#define SUM NUM+10
2.有参数的宏定义:#define SUM(x,y) (x+y)。注意由于宏定义的展开是原封不动的展开,避免运算符的优先顺序发生变化,宏定义的表达式一定加上括号
#include<>和#include""区别
- "" 表示系统先在file1.c所在的当前目录找file1.h,如果找不到,再按系统指定的目录检索。
- < > 表示系统直接按系统指定的目录检索。
注意:
1. #include <>常用于包含库函数的头文件;
2. #include ""常用于包含自定义的头文件;
3. 理论上#include可以包含任意格式的文件(.c .h等) ,但一般用于头文件的包含;