Sunshine__sunny的快乐码奴生活
函数的声明,实现与调用
- 模块化
封装代码块
函数就是代码块
{ } == 独立空间
功能模块:一个功能对应一个函数
函数名(type param1,type param2)
{
代码块
return ;
}
- 驼峰命名法
add download parse
scaleImageToSize
int add(int a, int b)
{}
- 定义函数的两种方式
1.声明和实现一起
int add(int a, int b){
int sum = a + b;
return sum;
}
- 先声明 后实现(通常使用这种方式)
通过调用函数的函数名
int minus(int a, int b);
int minus(int a, int b){
return a - b;
}
main.cpp
#include <stdio.h>
#include "Calulator.h"
//1.程序的入口函数
//main.cpp 是为了让阅读者知道这里写的是入口函数
// 2.将不同的功能模块用 .h .cpp 来封装
//.h 头文件 函数声明 不可实现
// .cpp .c 实现文件 函数的具体实现{}
//3.导入头文件进行使用
int main()
{
printf("1 + 1 = %d\n",add(1,1));
printf("3 - 1 = %d\n",minus(3,1));
printf("2 * 1 = %d\n",multiply(2,1));
printf("4 / 2 = %d\n",devide(4,2));
return 0;
}
Calulator.h
#include <stdio.h>
//头文件里面声明函数
int add(int a,int b);//加法
int minus(int a,int b);//减法
int multiply(int a,int b);//乘法
int devide(int a,int b);//除法
Calulator.cpp
- 实现文件
1.先导入需要实现的头文件
2.实现这个头文件里的所有方法
#include "Calulator.h"
int add(int a,int b)
//加法
{
return a + b;
}
int minus(int a,int b)
//减法
{
return a - b;
}
int multiply(int a,int b)
//乘法
{
return a * b;
}
int devide(int a,int b)
//除法
{
if(b == 0)
{
return 0;
}
else
{
return a / b;
}
}
- 常量字符串的内存空间由系统自动分配
- 在常量区里面分配
当程序结束时才会被释放
常量区 | 常量const | int a = 1; |
---|---|---|
静态区 | static | 从程序开始到程序结束 |
栈 | 局部变量 | int a = 10; | 离开作用域就自动收回 |
---|---|---|---|
堆 | 自己申请的内存 | malloc calloc realloc | 必须自己释放 |
#include <stdio.h>
char* test(){
char *name = "jack";
return name;
}
int main(){
char *p ;
p = test();
printf("%s\n", p);
return 0;
}
char *test1(){
char name[10] = {'j','a','c','k'};
return name;
}
int main(){
char *p ;
p = test1();
printf("-%s\n", p);//错误!!!!此时p为野指针 因编译器不同 会报错或打印出未知的指向的内容
return 0;
}
int count = 0;//需定义为本文件的全局变量
void test3()
{
count ++;
printf("count:%d",count);
}
int main()
{
test3();
test3();
return 0;
}
- 一个函数想记录自己被调用的次数
- 静态变量
只被定义一次
生命周期:从开始到结束 和全局变量类似
void test3()
{
static int count = 0;
count ++;
printf("count:%d\n",count);
}
int main()
{
test3();
test3();
return 0;
}
来源:CSDN
作者:Sunshine__Blue
链接:https://blog.csdn.net/Sunshine__sunny/article/details/103392992