C语言学习第32篇---面向过程编程,及函数意义分析
【摘要】
所有资料电子版可以通过置顶文章获取
面向过程的语言的特点
******************************************************
面向过程的程序设计
1.面向过程是一种以过程为中心的编程思想
2.首先将...
所有资料电子版可以通过置顶文章获取
面向过程的语言的特点
******************************************************
面向过程的程序设计
1.面向过程是一种以过程为中心的编程思想
2.首先将复杂的问题分解为一个个容易解决的问题
3.分解之后的问题可以按照步骤一步步完成
4.函数是面向过程在C语言的提现
5.解决问题的每个步骤可以用函数来实现
声明和定义
1.声明的意义在于高速编译器程序单元是存在的
2.定义则明确指示程序单元的意义
3.C语言通过extern进行程序单元的声明
4.一些程序单元在声明时可以省略extern
严格意义上的声明和定义并不相同!!!
实例1
-
#include <stdio.h>
-
-
#include <malloc.h>
-
-
-
-
extern int g_var; //这是是外部声明(只是告诉编译器存在,没说怎么存在),不会分配内存分配
-
-
extern struct Test; //结构体声明,在其他地方
-
-
-
-
int main()
-
-
{
-
-
extern void f(int i, int j); //函数声明
-
-
extern int g(int x); //函数声明
-
-
-
-
struct Test* p = NULL; // (struct Test*)malloc(sizeof(struct Test)); 不会报错
-
-
// 直接等于malloc会报错,sizeof(struct Test,由于C语言编译期间不会依赖于文件之间的关系
-
-
printf("p = %p\n", p);
-
-
-
-
//g_var = 10;
-
-
-
-
printf("g_var = %d\n", g_var); //这里是看本文件声明的方式,即使修改global文件也没有效果。修改为float,结果是整型,是不是预期的float
-
-
-
-
f(1, 2);
-
-
-
-
printf("g(3) = %d\n", g(3));
-
-
-
-
free(p);
-
-
-
-
return 0;
-
-
}
gcc 43-1.c global.c
p = (nil)
g_var = 10
i + j = 3
g(3) = 16
外部定义文件
-
#include <stdio.h>
-
-
int g_var = 10; //定义
-
-
struct Test
-
-
{
-
-
int x;
-
-
int y;
-
-
};
-
-
void f(int i, int j)
-
-
{
-
-
printf("i + j = %d\n", i + j);
-
-
}
-
-
int g(int x)
-
-
{
-
-
return (int)(2 * x + g_var);
-
-
}
小结:
1.函数是面向过程思想在C语言中的体现
2.面向过程是由上至下分解问题的设计方法
3.程序中的定义和声明完全不同
4.C语言中通过extern对程序单元进行声明
文章来源: allen5g.blog.csdn.net,作者:CodeAllen的博客,版权归原作者所有,如需转载,请联系作者。
原文链接:allen5g.blog.csdn.net/article/details/89114385
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)