问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在C语言中有很多非标准词语,比如说:wndclassex,typedef,hprevinstance等等,你们是怎么读的?

发布网友 发布时间:2022-05-15 10:38

我来回答

1个回答

热心网友 时间:2023-11-24 18:54

你这个问题是我学习计算机这二十几年里第一次遇到。
我没有办法给你准确的回答,但是我说说我的想法。
wndclassex 这个本身 具有 windows handle class extension 的含义,缩写而成
typedef 则是 type define ,这个你直接读原来的就可以吧
hprevinstance->hPrevInstance,是handle Previous Instance缩写而成。

类似的缩写很多比如
LPCSTR = Long Pointer to Const STRing 我见过有人就是读后面的
主要是这些缩写一个原音也没有,实在不知道怎么读

我觉得大部分标识符(identifier)还是直接拼写吧,我觉得实在没办法读,因为你读出来还可能不正确。比如C语言是区分大写小写的:
考虑:
for foR fOr fOR For FoR FOr FOR
其中第一个是关键字,后面可能是7个不同的标识符,这种东西即使是拼写还要说明大小写,如果读出来有什么意义?
再比如你说的:hprevinstance这个就不是hPrevInstance,这两个在C语言里没有任何关联,你即使读出来了也毫无意义,因为不知道是哪一个。追问这个hprevinstance跟hPrevInstance有什么区别呢,我看有的代码上是hPrevInstance,我把他写成hprevinstance或者hpreinstance一样能运行,结果都是一样的。还有nShowCmd把他写成ncmdshow一样可以,不是说C语言很严谨的嘛?还有,再问一个问题,我学C的时候,感觉那些什么句柄啊窗口类等等我看不懂也不知道的东西,我该怎么学他,是先记着再理解呢,还是理解了在去记,然后写代码强化记忆,大哥,帮忙说个方法。追加10分。

追答是的,其实计算机根本不会在意这些,计算机使用的是形式语言。一堆二进制而已。
要是程序都是这么写:
0xEB 0xFF 0xFF 0xFF 0xFA
你能知道什么意思嘛?

如果写成:jmp $是不是好看一些?jmp叫做助记符,实际上也就是EB、EA之类。
如果写成C语言就是for(;;);或者while(1);这样不是更好看了吗?

其实高级语言的优势在于方便人看懂,这些hprevinstance、hPrevInstance对于计算机是一样的,但是良好的命名规则可以帮助人们区别这些符号。一个程序如果存在上百万个符号,甚至更多。(这可能超过全部英文单词的数量)如果都是不区分大小写的这种书写方法,再没有命名空间分割,真的是一场噩梦。

当标识符数量很大的时候,写法不同产生的效果就越明显。当然我原来遇到过奇人一个,人家一开始写程序标识符就是越短越好。(本人生平最佩服的人之一,遇上他以后,我觉得我还是不写程序的好,自己写一个月,不见得超过他写一天)
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a0,a1,a2……
几百个变量最长不超过2个字符,一般人能记住其中10个变量的作用已经是奇迹,但是这个人绝对能记住50个以上。可是后来,我和他说,大程序要很多人写,你这么写,除了你,怕是永远不会有人看懂了,那不也是白费,到头来大家只能重新来过。

其实,严谨仅仅是相对自然语言来说的,你要是这么替换没问题,但是你只要拼错一个字母,那是绝对不行的。比如使用hPrevInstance的时候误做hPrevInstanc,那肯定不行,当然你一错到底,使用hPrevInstanc这个完全替代hPrevInstance那肯定没问题,到了计算机里面不过是1号变量、2号变量……也就是一个编号,没见过的(非关键字)都给分配一个编号,仅此而已。

本人时间有限,先写这么多吧。本人主要是觉得你可以想出这样的问题确实不容易,这么多年,这么多人很少有人提出这样的问题。可是我觉得,其实程序不能读确实是一个极大的缺陷,那么复杂的化学结构式、数学公式,都可以读出来,但是计算机程序却读不出来。不能不说是一个缺陷。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
开车堵门违法吗 车辆恶意堵门口 家里怎么会有蛐蛐啊?? 家里有蛐蛐叫预示什么 家里为什么会有很多蛐蛐 什么是亚马逊云科技? ...我竟然一点感觉都没有 其实我想哭 可怎么也哭不出来!~~ ...感觉活着就是受罪,心里的郁闷还发泄不出来,想哭哭不出来想发火也发... 做的油条怎么不松脆 监控如何插线 前两个英语怎么说? the first two or the former/previous two? “往期阅读”翻译为英语用什么好点 previous,million,pleasure,usual,这几个单词怎么读 manuscript;previous;这英语怎么念的? previous怎么读音 减肥的动作有哪些视频 骑电动车没带头盔被罚款,不交可以吗 骑电动车被交警开了罚单,可以不用去交嘛,我没驾驶证的 头发中发现一根白头发怎么回事 麂皮鞋被吹风机吹黄了怎么办 据说拔一根白头发会长十根,是真的吗? 一根白发怎么回事? 什么牌的珍珠粉好用 煤气罐放在一楼的户外,燃气灶在二楼,气管长度在5米左右,请问煤气压力够吗?谢谢! 有人说白发“拔一根,长十根”,白头发真的不能拔吗? 煤气罐管路能否用镀锌金属管,长度一般多少合适 什么牌子的珍珠粉好用过的说 橱柜设计中最容易出错的问题 年过半百,却找不到一根白头发,这是怎么回事? 与男友冷战一个月没联系是不是彻底分了? good evening 怎么读 武汉哪里还能够找到正宗的豆皮? 武汉哪家豆皮最好吃啊??? 武汉哪里的豆皮好吃? 支付宝中有医保局推荐领电子医保卡是骗子吗? updown fuck 是什么意思 武汉豆皮在那可以吃到? 请问哪里有武汉豆皮的 如何评价Uptown Funk这首歌 武汉豆皮哪里吃,武汉哪家豆皮好吃,武汉豆皮餐馆推荐 updown funk什么意思 什么是UP&DOWN 求一首节奏感很强的英文歌曲,很动感的男声,求高手解答 英文重低音摇滚歌,男唱的,越多越好,要精华 淘宝上的新款没有同款流量大不大? applestoreapp更新可以吗 apple store多久更新一次现货 有没有谁可以帮忙找一下这一组约会大作战图片的原图 玉兰油美白产品适合20岁左右的学生使用吗? 玉兰油的什么系适合40岁以上的女人用