【429】关于ADT的访问权限
在看老师代码的时候,发现ADT中的 struct 有时候写到了 adt.c 里面,有时候写到了 adt.h 里面,其实有些困惑,经过仔细研究,发现写在 adt.h 中的 struct 可以在 test.c 中直接使用,而在 adt.c 中的 struct 只有 adt.c 可以使用,因此需要在 adt.h 中定义相应的指针才可以使用。
总结:
- struct 写在 adt.h 中,都可以调用
- struct 写在 adt.c 中,只要 adt.c 可以调用
☀☀☀<< 举例 >>☀☀☀
adt.c 中建立 struct,在 adt.h 建立 指针,但是在 test.c 中无法访问
adt.h
#include <stdio.h>
#include <stdlib.h> typedef float Weight;
typedef int Vertex; typedef struct edge *Edge; void showEdge(Edge);
Edge newEdge(Vertex, Vertex, Weight);
adt.c
#include <stdio.h>
#include <stdlib.h>
#include "adt.h" struct edge {
Vertex v;
Vertex w;
Weight x;
}; Edge newEdge(Vertex v, Vertex w, Weight x) { // create an edge from v to w
Edge e = malloc(sizeof(struct edge)); e->v = v;
e->w = w;
e->x = x; return e;
} void showEdge(Edge e) { // print an edge and its weight
printf("%d-%d: %.2f", e->v, e->w, e->x);
return;
}
test.c
#include "adt.h"
int main() {
Edge e = newEdge(2, 3, 4);
showEdge(e);
//printf("\n%d, %d, %0.2f\n", e->v, e->w, e->x);
return 0;
}
output:
2-3: 4.00
☀☀☀<< 举例 >>☀☀☀
adt.h 中建立 struct,adt.c 和 test.c 都可以调用,但是相对于安全性较弱
adt.h
#include <stdio.h>
#include <stdlib.h> typedef float Weight;
typedef int Vertex; typedef struct {
Vertex v;
Vertex w;
Weight x;
} Edge; void showEdge(Edge);
Edge newEdge(Vertex, Vertex, Weight);
adt.c
#include <stdio.h>
#include <stdlib.h>
#include "adt.h" Edge newEdge(Vertex v, Vertex w, Weight x) { // create an edge from v to w
Edge e = {v, w, x};
return e;
} void showEdge(Edge e) { // print an edge and its weight
printf("%d-%d: %.2f", e.v, e.w, e.x);
return;
}
test.c
#include "adt.h"
int main() {
Edge e = newEdge(2, 3, 4);
showEdge(e);
printf("\n%d, %d, %0.2f\n", e.v, e.w, e.x);
return 0;
}
output:
2-3: 4.00
2, 3, 4.00
【429】关于ADT的访问权限的更多相关文章
- Java类访问权限修饰符
一.概要 通过了解Java4种修饰符访问权限,能够进一步完善程序类,合理规划权限的范围,这样才能减少漏洞.提高安全性.具备表达力便于使用. 二.权限表 修饰符 同一个类 同一个包 不同包的子类 不同包 ...
- MongoDB 安全和访问权限控制
MongoDB的访问控制能够有效保证数据库的安全,访问控制是指绑定Application监听的IP地址,设置监听端口,使用账户和密码登录 一,访问控制的参数 1,绑定IP地址 mongod 参数:-- ...
- 窥探Swift之类的继承与类的访问权限
上一篇博客<窥探Swift之别具一格的Struct和Class>的博客可谓是给Swift中的类开了个头.关于类的内容还有很多,今天就来搞一下类中的继承以及类的访问权限.说到类的继承,接触过 ...
- Android Permission 访问权限大全(转)
程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下: android.permission.ACCESS_CHECKIN_PROPERTIES允 ...
- SQL SERVER 属性OWNER不可用于数据库xxx。该对象可能没有此属性,也可能是访问权限不足而无法检索。
今天遇到一个案例:右键单击数据库的属性时出现下面错误提示: 属性Owner不可用于数据库xxx,该对象可能没有此属性,也可能是访问权限不足而无法检索. 使用脚本查看该数据库的Owner时发现Owner ...
- (转)浅析Java中的访问权限控制
原文地址: http://www.cnblogs.com/dolphin0520/p/3734915.html 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下 ...
- SVN版本库(访问权限)配置实例笔记
http://blog.csdn.net/zjianbo/article/details/8578297 SVN版本库(访问权限)配置实例笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. ...
- service 03 iis之服务器无访问权限
这两天在Service 03 的iis 6.0 里面配置一个aspx 的网站 ,总是遇到一个问题 401.2 无权限访问,于是去百度了一下好多的方法,基本上是关于设置匿名用户,打开IUSER用户 ...
- 使用nginx和iptables做访问权限控制(IP和MAC)
之前配置的服务器,相当于对整个内网都是公开的 而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直接ip地址加端口访问对应服务 这是不对的啊,所以我们要做一些限制 因为只 ...
随机推荐
- Bias vs. Variance(4)---根据是high bias还是high variance问题来判断接下来做些什么
怎么区分哪些措施对我们有用呢?----首先根据learning curve来判断你的问题是high bias or variance 当你的算法是high bias问题时,如果你get more tr ...
- 移动端开发-viewport与媒体查询
首先要知道,在移动开发中,手机的浏览器会默认网页是为宽屏而设计的,它会缩小整个页面来适应屏幕. 1. 不使用viewport出现的问题 提到响应式设计,大家首先想到的可能是 Bootstrap , @ ...
- json格式常用操作
var data={"student":[ {"name":"zhangsan","age":11}, {"n ...
- JS判断移动端访问设备并加载对应CSS样式
JS判断不同web访问环境,主要针对移动设备,提供相对应的解析方案(判断设备代码直接copy腾讯网的) // 判断是否为移动端运行环境 if(/AppleWebKit.*Mobile/i.test(n ...
- sqoop job 实现自动增量导入
一.测试环境 1.MySQL表结构 mysql> show create table autoextend\GCREATE TABLE `autoextend` ( `id` bigint(2 ...
- Linux Vbox 桥接模式上网配置
1.Bridged Adapter模式(桥接模式)特点: 1)如果主机可以上网,虚拟机可以上网 2)虚拟机之间可以ping通 3)虚拟机可以ping通主机 4)主机可以ping通虚拟机以上各点基于一个 ...
- stos指令
mov ecx,30mov eax,0cccccccchrep stos dword prt es:[edi]stos指令,它的功能是将eax中的数据放入的edi所指的地址中,同时,edi会增加4个字 ...
- 初识QuartusII 9.0(破解,半加器的仿真,综合:下)
完成波形的随机设置(A,B任意给定高低电平即可,只是当作测试信号),选择任务栏Assignments[Setings],设置Simulation mode为functional,其余保持不变点击ok. ...
- Bzoj 2154: Crash的数字表格(积性函数)
2154: Crash的数字表格 Time Limit: 20 Sec Memory Limit: 259 MB Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least ...
- 洛谷 P1147 连续自然数和 题解
P1147 连续自然数和 题目描述 对一个给定的自然数MM,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为MM. 例子:1998+1999+2000+2001+2002 = 100001 ...