Soft_Job 板


LINE

*ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz" [35 + (tmp_value - value * base)]; 在这边看到的 https://stackoverflow.com/questions/8257714/how-to-convert-an-int-to-string-in-c 不怕各位笑,小弟摸C语言这麽久,今天第一次看到这种写法 看了半天,实在是不知道是什麽意思 程式码我Compile过,确定是可以编译可以Run的 有高手能给个解答吗? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.229.25.207 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1652507531.A.5E9.html
1F:推 NDark: 应该是指定某一已知记忆体的数值 05/14 13:58
2F:→ NDark: 具体来说要看那块记忆体有什麽特殊 05/14 13:58
3F:推 DarkIllusion: 抱歉 我不太懂你对哪个部分不懂? 05/14 14:00
4F:推 OyodoKai: 哪里看不懂? 05/14 14:00
5F:推 ccpz: =右边的部分,是把字串当阵列,去抓出某个 char 而已 05/14 14:02
6F:推 TheOneisNEO: 就排排站然後取index吧 你把那一长串字串先assign给 05/14 14:16
7F:→ TheOneisNEO: 另外一个变数也可以 05/14 14:16
有人将它带换成这两行,然後我就看懂了 char no_name[72]="zyxwvutsrqponmlkjihgfedcba9876543210~ vwxyz"; *ptr++ = no_name[35 + (tmp_value - value * base)]; 感谢csfgsj的私下解答 ※ 编辑: wsad50232 (36.229.25.207 台湾), 05/14/2022 14:23:35
8F:推 NDark: 基本上卖弄技巧的程式码都是软体工程的大敌 05/14 16:53
9F:→ NDark: 在我手下 有人敢这样写 我一定背後记住 05/14 16:54
10F:推 TwitchGod: 看不懂这该回去重修大一程设吧 05/14 17:02
11F:推 Belieeve: 看来是道行高深的忍者呢 05/14 17:23
12F:→ wulouise: 不会看不懂 可是code review不被电很奇怪 05/14 17:24
13F:推 steve1012: 这根本过不了code review 05/14 17:43
14F:推 calqlus: 阿就atoi的封装写法 05/14 17:44
15F:推 calqlus: 平常会用查内建函式就很不错了 05/14 17:47
16F:推 ManOfSteel: 不会看不懂,但是看这个心情会很差... 05/14 18:54
17F:→ ssccg: 转换用先建好的表 + 算index查表算是很平常的做法吧? 05/14 19:05
18F:→ ssccg: 单纯抓这一行来看才会一时看不懂,原本的函式很好懂啊 05/14 19:06
19F:→ ssccg: 觉得这篇的问法有点断章取义 05/14 19:09
20F:推 Gaogaigar: 前面注解写个LUT 我review 会给过 05/14 20:36
21F:推 jayd: 这种写法code review绝对被靠北 05/14 20:54
22F:→ shadow0326: 这不是卖弄,而是偷懒吧 05/14 22:50
23F:推 shownlin: 这个用法觉得还算正常...最近在碰device tree compiler 05/15 01:38
24F:→ shownlin: 里面的checker也是这样建表的 05/15 01:38
25F:→ shownlin: 大家review的规则比大神还严欸0.0 05/15 01:39
26F:推 CoNsTaR: 很多人对烂 code 的定义就是只要我看不懂就是烂 code 05/15 02:52
27F:→ CoNsTaR: code smell 的定义就是只要不合我的意就是 code smell 05/15 02:52
28F:→ CoNsTaR: 结果自己写出来的反而笑死人 05/15 02:52
29F:推 wei115: 还好吧 就把字串当阵列用阿 其实我觉得*ptr++还要想一下(x 05/15 02:56
30F:→ netburst: 真 05/15 03:31
31F:推 sunsamy: 也许人家是刷题仔,刷题很多这种卖弄技巧的写法,解法 05/15 04:01
32F:推 OnlyRD: c型别系统和指针不熟才会看不懂吧?另外说review不 05/15 09:11
33F:→ OnlyRD: 会过,大部分 05/15 09:11
34F:→ OnlyRD: 应该都是在做上层应用的人,原程式是为了解决itoa 05/15 09:11
35F:→ OnlyRD: 并不在c标准的 05/15 09:11
36F:→ OnlyRD: 问题,因此才产生这份code,当然对於效能和记忆体 05/15 09:11
37F:→ OnlyRD: 的要求就远高於 05/15 09:11
38F:→ OnlyRD: 易读,毕竟各位上层高手几个人会去看c标准库的实作 05/15 09:11
39F:→ OnlyRD: ?toolchain自 05/15 09:11
40F:→ OnlyRD: 带标准库通常也都只有程式库和标头档而已。但这类 05/15 09:11
41F:→ OnlyRD: 缺乏易读性很像 05/15 09:11
42F:→ OnlyRD: 在玩技巧的实作方法,越底层的库越多,都是有它的 05/15 09:11
43F:→ OnlyRD: 理由的,又不是 05/15 09:11
44F:→ OnlyRD: 吃饱闲着。而且这段code对写c的人很基本吧?看不懂 05/15 09:11
45F:→ OnlyRD: 的人你才要担 05/15 09:11
46F:→ OnlyRD: 心他会不会制造许多型别转换和指标操作的诡异bug。 05/15 09:11
47F:→ shooter555: 很少看到不先把常数字串先定义好再用的写法 05/15 09:16
48F:→ shooter555: 给个变数名 後人还能知道这串是什麽碗糕 05/15 09:17
49F:推 sanctitysky: 对c来说 很清楚常见 05/15 09:18
50F:推 yupog2003: 推OnlyRD,易读性和效能有时候没办法兼顾,看需求而已 05/15 09:34
51F:→ sazabijiang: 这就是为什麽会有Java的诞生 05/15 11:45
52F:推 Bencrie: 有标准的 snprintf 要这个干嘛? 05/15 12:34
53F:推 wulouise: 底层library跟上层应用的review标准不同,我是以上层看 05/15 14:12
54F:→ labbat: 去跟主管讲呗,说服网友干嘛 05/15 14:15
55F:推 wulouise: @Bencrie 见https://bit.ly/3LdC6LV 它比snprintf快 05/15 14:19
56F:推 sazabijiang: 一个後人无法容易维护的程式码,就是烂的程式码 05/15 14:22
57F:推 bnd0327: 这行就是没有要让人维护的,这是基础函式,不是商业逻辑 05/15 16:21
58F:→ sazabijiang: 然後会出错的地方,就是这种没打算让人维护的地方 05/15 16:32
59F:→ brucetu: 写底层的跟写商业逻辑的在讨论可读性 05/15 17:57
60F:→ brucetu: 目的就不同 作法当然不同 05/15 17:58
61F:推 brucetu: code review看到这段code出现在itoa的实作里面 05/15 18:00
62F:→ brucetu: 还感觉不出是在做什麽操作的 是review的人有问题吧? 05/15 18:00
63F:→ brucetu: review本来就要看整个context啊 05/15 18:00
64F:推 Bencrie: 不要可读那不考虑直上 asm 吗? 05/15 18:50
65F:→ Firstshadow: 这个很好读吧 哪里不好读== 05/15 19:16
66F:推 shownlin: kernel里面不就一堆.s 05/15 19:47
67F:推 shownlin: 话说这一段code明明就很直白 05/15 19:50
68F:→ shownlin: 硬要扯说看不懂也太扯 05/15 19:50
69F:→ acgotaku: 大家这麽凶 以後谁敢问问题 05/15 20:27
70F:推 acgotaku: 但会这样写的,有点像是程式新手 05/15 20:30
71F:推 knme: code review看到这个,会希望前面多个注解 05/15 20:32
72F:推 shownlin: 原来GCC底层是一群新手写的吗…… 05/15 20:52
73F:推 wulouise: 本来code review就是根据维护人的能力来评估的 05/15 21:08
74F:→ wulouise: 实际上不会有这麽多人都有维护gcc底层的能力 05/15 21:09
75F:→ sarafciel: 新手才不敢这样写啦 要看懂这段code会吃对指标的理解 05/15 22:37
76F:推 manmay: 常数字串查表比额外宣告一个区域变数快很多吧 05/16 00:44
77F:推 hengsao: 一群能力不到的人对自己能力不到的程式库该怎麽实作很有 05/16 04:57
78F:→ hengsao: 意见== 05/16 04:57
79F:→ shooter555: 不提前宣告这串char 而丢在loop里面 不知道是什麽操作 05/16 09:34
80F:→ shooter555: 是我是不会这样写 05/16 09:35
81F:→ shooter555: 前面推文有提到理由 那这边的理由不知道是什麽 有高手 05/16 09:37
82F:→ shooter555: 知道的吗 05/16 09:37
83F:嘘 xxtuoo: 这几行看不懂的 才该被注意Zzz 05/16 09:43
84F:→ ssccg: 常数丢在loop里还是常数,就只用在这为什麽要另外生个变数? 05/16 11:38
85F:→ freef1y3: compiler没这麽笨 你就算先生个变数存也不会比较慢啦.. 05/16 11:45
86F:推 aasssdddd: 第一次看到 长姿势了 不管写法一定有地方特别存那字串 05/16 12:38
87F:→ ssccg: 不是说快慢有差,是在回两楼前的,为什麽要提前宣告? 05/16 12:46
88F:推 labbat: 一大串人类看不懂啊,宣告就是逐步做一大串做的事情 05/16 13:30
89F:→ sarafciel: 不会比较慢其实不好说XD 要看你变数型态怎麽给 05/16 14:01
90F:→ sarafciel: compiler不笨没错 但compiler会为了programmer变笨 05/16 14:02
91F:→ sarafciel: 然後你知道函式是itoa的话,要理解那个字串的意图不难 05/16 14:06
92F:→ sarafciel: 在这个前提下,他这样写的用意我猜是scope 05/16 14:06
93F:→ sarafciel: 就跟anonymous function的目的一样,只在某处只用一次 05/16 14:07
94F:→ sarafciel: 如果你把这个表拉出去回圈外,作为reviewer 05/16 14:08
95F:→ sarafciel: 第一时间看会假定这个字串在函式内有好几个地方用到 05/16 14:08
96F:→ sarafciel: 而他这样写相当於告诉你scope锁死在这一行 05/16 14:09
97F:→ brucetu: 到底是*ptr++=真的没那麽难懂 05/16 21:09
98F:→ brucetu: 字串查表也很常见 05/16 21:10
99F:→ brucetu: 很多烂程式可读性差是因为物件之间的关系混乱 职权不清。 05/16 21:14
100F:→ brucetu: 看不懂这行的叫做语法不熟 不是他写成一行可读性差 05/16 21:14
101F:推 manmay: c语言标准有定义 常数字串的storage duration 05/17 00:51
102F:→ manmay: C99 $6.7.8 Initialization 05/17 00:51
103F:推 descent: c 博大精深, 真的有很多没看过的用法。 05/17 17:58
104F:推 descent: 另外char no_name[72]="z.." 可能应该要改 05/17 18:01
105F:→ descent: const char *no_name = "z..." 比较恰当 05/17 18:01
106F:→ oToToT: 上面那样改的话no_name还是会被指去不同地方,可能还是不 05/17 18:16
107F:→ oToToT: 太好? 05/17 18:16
108F:推 descent: 这问题也可以 po 到 c_cpp 版 05/17 20:26
109F:推 newking761: 如果我是你老板,你大概离职了 05/18 08:34
110F:→ wsad50232: 楼上可能不适合当老板 05/18 11:34
111F:推 Isaea: c最多这种把好几行浓缩在一行的写法,老实的拆开不好吗 05/18 12:37
112F:推 sazabijiang: 炫技 05/18 17:34
113F:→ eva19452002: 写个可读性高的程式码会牺牲很多效能吗? 05/20 17:59
114F:推 OnlyRD: compiler会把c string放到字串section,程式启动後 05/21 15:49
115F:→ OnlyRD: 初始化,整段 05/21 15:49
116F:→ OnlyRD: 操作只是计算记忆体中的偏移量再去计算而已。以为c 05/21 15:49
117F:→ OnlyRD: 码农应该都对c 05/21 15:49
118F:→ OnlyRD: ompiler不陌生才对,因为c就是贴近底层的语言。整 05/21 15:49
119F:→ OnlyRD: 串看下来,好像 05/21 15:49
120F:→ OnlyRD: 不少人对语言标准、编译器都没啥掌握,避开底层工 05/21 15:49
121F:→ OnlyRD: 作吧。 05/21 15:49
122F:推 cia1099: 不会到看不懂,只是要回想思考一下,这就会让人愤怒 05/21 20:32
123F:→ wulouise: 历史因素 就像++i i++现在几乎没差除非compiler很烂 05/21 20:51
124F:推 wulouise: 有些时候当时那样写效率最高 但是现在不这样写不一定差 05/21 21:23
125F:推 OnlyRD: 楼上,要看你的i是什麽type,c++会更复杂一点,而 05/22 03:48
126F:→ OnlyRD: 且在某些支援特 05/22 03:48
127F:→ OnlyRD: 殊指令的cpu上有差别。另外++i和i++的语意不同,怎 05/22 03:48
128F:→ OnlyRD: 麽会没差?如 05/22 03:48
129F:→ OnlyRD: 果是c++,换成class和template再试试看就知道了。 05/22 03:48
130F:推 wulouise: 可能我省略太多,是单行的i++;跟++i;不是所有情况 05/22 14:26
131F:推 DoubleFree: 看不懂就是烂code 我还满同意的 05/24 10:30
132F:→ DoubleFree: 明明有更清楚的写法干嘛弄成跟大便一样 05/24 10:30
133F:推 ohohohya: 基本上你待在公司就写符合公司coding style的code就好 06/04 05:59
134F:→ ohohohya: 了 这段老实讲没到会被reviewer打枪的程度 大意也只是 06/04 05:59
135F:→ ohohohya: 从字串中间开始计算要拿哪个index字元的ascii加回*ptr 06/04 05:59
136F:→ ohohohya: 的内容而已 06/04 05:59







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灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP