C_and_CPP 板


LINE

小弟最近在拜读Axel-Tobias Schreiner的Object-oriented Programming in ANSI-C, 殊不知看不太懂作者想要表达的想法与观念,故想上网请教前辈们。 附上pdf网址:https://www.cs.rit.edu/~ats/books/ooc.pdf 在PDF第7页,"Alternatively, we can define a data type as a set of values plus operations to work with them." data type可以定义为一组数值+上与数值的运算,不太懂这句话想要表达的含意是什麽(注 :我只会C,不会C++) 对我来说data type就是最基本的int, char,double与float,其余像是array, struct, union都是最基本的延伸的变化型。 接着在下列的这句话"Typically, the values are what a computer can represent, and the operations more or less reflect the available hardware instructions. int in ANSI-C does not do too well in this respect: the set of values may vary between machines, and operations like arithmetic right shift may behave differently." 第二句看不懂,operation体现出可使用的硬体指令?为什麽ANSI-C的int在这方面做得不太 好?是哪方面? 接着,"More complicated examples do not fare much better. Typically we would define an element of a linear list as a structure" 作者说明更复杂的data type进展的也不是很好,并举例了一个例子: typedef struct node { struct node * next; ... information ... } node; and for the operations we specify function headers like node * head (node * elt, const node * tail); 作者说明,这个方法相当马虎,好的原则应该是要隐藏data item的representation且只 declare possible manipulations. 问题1: 什麽是 linear list? 为什麽这个struct是linear list的一种? 问题2: head应该是指向一个函式的指标吧? 问题3: 所以operation不是指+ - * /这类的? 问题4: 这个例子的representation of data item是那些东西? 问题5: only declare possible manipulation是指什麽意思? 问题6: 为什麽这个方法会相当马虎? 哪边马虎? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.26.157
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1502782305.A.C87.html
1F:→ james732: 先查一下什麽是linked-list? 08/15 15:38
我知道什麽是Linked-list ※ 编辑: zzss2003 (60.248.26.157), 08/15/2017 15:40:46
2F:→ james732: 他的linear list应该跟linked-list是一样的东西? 08/15 16:36
我不确定...所以才上来问版友@@ ※ 编辑: zzss2003 (60.248.26.157), 08/15/2017 16:54:59
3F:推 chuegou: 这里的operation应该是指oop的"方法"? 08/15 19:05
4F:推 chuegou: 这里的data type不好 是因为他没有包含操作该data的方法 08/15 19:11
5F:→ chuegou: 作者应该认为好的data应该包含"方法" 08/15 19:11
6F:→ chuegou: 像是c++的class那样 08/15 19:12
7F:→ chuegou: 第二个例子就用struct作一个类似class的封装 08/15 19:12
8F:→ chuegou: 其中包含了head这个方法 08/15 19:13
9F:→ longlongint: 比如说我要定义 2bits 的正整数型态 08/15 23:19
10F:→ longlongint: 数值有 0 1 2 3, 0+1=1 1+1=2 等等可以列举16种可能 08/15 23:21
11F:→ longlongint: 资料的表示 跟如何运算的意思啦...... 08/15 23:22
12F:→ longlongint: 然後第二段是在靠北说一样的码不同机器跑结果不一样 08/15 23:23
13F:→ longlongint: 其实讲这麽多只是尽量希望所有东西都定义清楚 08/15 23:28
14F:推 legendmtg: 整段就是在跟你说封装很重要啦 08/16 13:32
15F:→ zzss2003: 谢谢两位大大的解释,小弟资质太浅还是看不懂QQ 08/16 14:07
16F:推 Neisseria: 这本是好书,第一次看看不懂,後来才慢慢了解作者的 08/16 14:34
17F:→ Neisseria: 用意。不过,除了非得用 C 写程式的场合外,还是用 08/16 14:34
18F:→ Neisseria: C++ 或 Java 比较简单,有现成的物件系统可用 08/16 14:35
19F:→ zzss2003: 想请问N大,我现在在写嵌入式软体(纯C),这本对我现在 08/16 15:57
20F:→ zzss2003: 的帮助大吗? 08/16 15:57
21F:→ zzss2003: 因为之後想要自己玩看看RTOS,很怕对物件导向的观念不熟 08/16 15:58
22F:→ zzss2003: 导致写出来的OS之後要修改必须要砍掉重练 08/16 15:58
23F:推 Neisseria: 嵌入式装置我没有碰,可能问问版上其他高手 08/16 16:12
24F:→ Neisseria: 基本上,OOP 的作用在协助我们整理程式码,应该和特定 08/16 16:12
25F:→ Neisseria: 领域无关,都会有所帮助 08/16 16:13
26F:→ dou0228: C 写 Class,写熟了就算简单 08/16 16:13
27F:→ dou0228: 可以多看点 Linux Kernel 程式码,不少这样概念写出来的 08/16 16:14
28F:→ dou0228: 好的程式码应该看到 structure 就能搞懂逻辑 08/16 16:15
29F:推 chuegou: 我也是写嵌入式 我对於oop in c的感想 08/16 18:56
30F:→ chuegou: 就是就算不会oop, 但为了维护等原因 08/16 18:56
31F:→ chuegou: c写久了你就会自己做一些简单类似oop的封装 08/16 18:56
32F:→ chuegou: 这时候再来看oop in c,会有"阿阿我懂我懂"的认同感 08/16 18:56
33F:→ chuegou: 然後我认为 rtos重要的是os观念 08/16 18:59
34F:→ chuegou: 照着你选的os的framwork来写即可 08/16 18:59
我现在就是还在初阶段XD没有啊...阿...嘶我懂我懂的感觉QQ ※ 编辑: zzss2003 (60.248.26.157), 08/18/2017 13:11:25







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP