四川大学课程号c语言,得到多源文件的程序组织-四川大学课程中心.PPT

得到多源文件的程序组织-四川大学课程中心

头文件 /* calculator.h中的内容 */ /* 第一行相当于#ifndef _CALCULATOR_ (如果还没定义_CALCULATOR_) */ #if !defined(_CALCULATOR_) #define _CALCULATOR_/* 则定义_CALCULATOR_ */ #define NUMBER '0'/* 0表示发现了一个数字 */ int Getch(void); /* 获取一个字符 */ void UnGetch(int c); /* 回退一个字符 */ int GetOP(char [ ]);/* 获取一个操作数或者运算符 */ void Push(double d);/* 入栈 */ double Pop(void);/* 出栈 */ #endif /* 编译至此结束 */ * * 主讲教师:四川大学计算机学院 陈良银 5.4 变量的存储类型 auto(自动型)、static(静态型)、register(寄存器型)和extern(外部型)。 static char buf[BUFSIZE]; static int bufp = 0; int Getch(void) { ... } void UnGetch(int c) { ... } * * 主讲教师:四川大学计算机学院 陈良银 5.4.6 变量的存储类型及其作用域总结 * * 主讲教师:四川大学计算机学院 陈良银 内部变量 外部变量或函数 register auto static static 非static extern 在栈区分配存储空间 在静态存储区 分配存储空间 不分配存储空间 作用域在块内 或函数内 作用域只限于文件内 作用域可扩展 到其他文件 在寄存器中分配 5.5 变量的初始化 初始化方式——通过在其名字后面附带一个名字或一个表达式。 int i = 1; char enter = '\n'; long secondDay = 60L * 60L * 24L; /* 一天的秒数 */ * * 主讲教师:四川大学计算机学院 陈良银 外部变量、内部变量、内部静态变量如果不初始化会有不同的初值。 *5.6 变量的连接 C语言定义了三类连接:外部连接、内部连接和无连接。 一般,函数和外部变量是外部连接,这意味着它们对组成程序的所有文件都是可见的。 用static限定词限定的文件作用域内的对象是内部连接,它们只在定义它们的文件内可见。 * * 主讲教师:四川大学计算机学院 陈良银 外部连接和内部连接是针对单个源文件而言的 *5.6 变量的连接 函数或者块内的内部变量没有连接,它们只在定义它们的块内有效。 未用static限制的,作用域可以扩展到其他文件的外部变量和函数是外部连接的。 而内部变量是无连接的,它们也不需要连接。 * * 主讲教师:四川大学计算机学院 陈良银 而内部变量和外部变量是针对函数而言的 *5.7 自顶向下程序设计 自顶向下程序设计就是从总体入手逐步细化的结构化程序设计思想。 结构化设计方法是以模块化设计为中心。 将待开发的软件系统划分为若干个相互独立的模块。 这样使完成每一个模块的工作变单纯而明确,为设计一些较大的软件打下了良好的基础。 * * 主讲教师:四川大学计算机学院 陈良银 习题 课后习题、作业 习题2 习题6 习题7 * * 主讲教师:四川大学计算机学院 陈良银 C语言编程实践(作为平时成绩) 有一个无线传感器网络,所有10个节点交替工作在休眠和苏醒状态,在苏醒状态节点可以发送和接收数据,在休眠状态节点什么也不干。比如:节点选定工作周期是13,那么节点将每隔13个时隙苏醒1个时隙。网络启动时各节点随机选择一个素数作为其工作周期,并随机选择一个小于其工作周期的值作为其启动时间。假定多个节点同时苏醒时,它们就能够相遇,请你按照你的网络启动时随机选择的值计算一下你的网络的所有节点都与其他节点相遇的最小时隙数。 假定节点的通信半径是100m,启动时这10个节点随机布置在500m*500m的一个正方形广场上,节点以每个时隙移动1m的速度随机选择一个坐标方向运动(不能移出边界),请问最少要多少个时隙这些节点才能够与其他所有节点至少相遇一次。 注:任何人不得将该题发在网络上。 * * 主讲教师:四川大学计算机学院 陈良银 测试题 在线测试 * * 主讲教师:四川大学计算机学院 陈良银 Thanks! * * 主讲教师:四川大学计算机学院

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值