金秋十月,吹点科技浪漫主义的文学之风,以活跃科学网的气氛。
编程语言C,是美国计算机科学家Dennis Ritchie发明的,常用于底层代码编写,仅比汇编语言ASM略显高级一些。家喻户晓的微软Windows操作系统,最初就是用C语言编写的。
C语言码农们都知道,他们经常不得不“指鹿为马”。
这话怎讲?请看下面两行代码片段:
double var = 1.0;
printf("ASCII value of 2nd byte in memory= %cn", (char *)&var[1]);
咋的?明明是指向8字节长的浮点数,我偏偏要指鹿为马,说它是指向单字节流的指针,甚至可根据需要,随时随意cast成任何数据类型。
动机很简单,计算机的内存管理与数据结构很琐碎,用太高级的语言操作,真的很费机时,效率也低。
指针是C语言最核心的概念,内存寻址都要用到指针操作,CPU处理指针的算术偏移,效率比所有其它操作都高。
反正内存里都是数据,怎么解释怎么方便,是躺赢的不二法则。
另一厢,“指鹿为马”恰是中国古代的经典成语之一,乃心高气傲者的霸气侧漏;当权者最喜欢故意指鹿为马,常用于测试谁是忠心耿耿的追随者。
不服? 放马过来,我把它当鹿打趴,哈哈!
两厢都说清楚,大家就领悟了:“C语言”与“指鹿为马”,原来并不是那么风马牛不相及嘛!
最后留道语文课后作业:
成语“风马牛不相及”的正解为何?
欢迎有兴致者在评论区交作业。
参考文献:
1、致敬先辈:伟大的C语言之父——丹尼斯·里奇
3、你知道“风马牛不相及”的“风”是什么意思吗?