[资料分享] 【旧帖钩沉】当年RICHENGFENG的C语言降龙十八掌

辛昕   2019-2-13 23:53 楼主
春节到今天基本结束,即使放了一个超长春节的我,明天也要回广州了。今晚我放下内心的一切对名利欲求的挣扎,决心无所事事地继续刷旧帖。
一直没找到合适开贴的话题。

直到我看到 RICHENGFENG的 C语言降龙十八掌~~

强者为尊,弱者,死无葬身之地

回复评论 (8)

这里先简单说说 我眼里的 RICHENGFENG
我叫他 方小帅。
对于XX年......让我想想,唔......对于2012年左右以后进入本坛的朋友,大概不知道他,同时不知道的还有仙猫。
当然,如今,仙猫偶尔还会被我诈尸,但方小帅却已经成为传奇。

当然,他还健在~~

15年我在北京玩的时候,有幸蹭了他一顿饭,与会人员级别都很高。
有论坛大姐头农姐,论坛编辑老大琳姐。最低级别的就是我。

关于他的各种风骚八卦就不提了。
只简单提一句。
他出身北航,从事技术工作六年后,现在去了国内某超级牛逼的某为公司,据说是做网络啥方面业务的售前。
当年,我最崇拜的论坛牛逼人物,软件方面就是他,没有之一。

他的这个降龙十八掌系列,其实我只听说过,却没有认真看过,甚至,连浏览一次都没有。
我刚刚顺着老帖,看了一下,发现他当年提及的一些问题,居然和我后来发的一些帖子都是同一个问题。

这让我十分惭愧。
一来,即便当年我如此崇拜的一个人,然而我却连他的历史帖子都没认真看过,这点比起我当年喜欢一个妹子,就恨不得把人家的qq空间全翻个遍——可见,爱情和色相的力量还是远远超过了技术,也说明了我的不谦虚。
二来,他的十八掌,掌掌有始有终,回头看我自己,各种烂尾,诶~~
强者为尊,弱者,死无葬身之地
点赞  2019-2-14 00:00
第一掌 main函数不简单 https://bbs.eeworld.com.cn/forum. ... 7910&fromuid=115166 在这一掌里,其实,方小帅重点提及的是 argv argc 这两个参数。 坦白说,虽然我经常也只是简写 void main(void) 但我是知道这两个参数存在的。 因为看一本书,我也知道getopt这几个函数的存在。 但是,作为第一掌,还煞有介事,我现在想知道的,如果就是不写会怎样? 我猜测,是不是要在这样一种环境里测试才可以。 就是 代码里有对 argv argc的判断和使用,但是,输入时就是没有填入参数,会发生什么事? 作为标准方法,show us the code 所以我决定再仔细看看这个帖子。 逐个提炼出那些问题。 以下这是一个最好的标准方式:
引用: 谁能写出一个main函数,编译以后得到这样的效果:(假设编译出的可执行程序名为gcc默认的a.out,操作系统为unix) 在提示符下输入: $./a.out RichieFang 程序输出: Hello, world, I am RichieFang
引用: 正解。 其实在给函数定义形参的时候,char*等同于char[], 同理,char**和char* []是一样的。 而作为实参传递的,本质上是一个指针。因此,描述形参的时候用指针类型更为接近实质。
其实,关于这个 东西,我更感兴趣的一个话题是。不知道 RICHENGFENG怎么看待 “当数组作为参数传递时蜕变为指针” 这个解释的说法。 本帖最后由 辛昕 于 2019-2-21 00:06 编辑
强者为尊,弱者,死无葬身之地
点赞  2019-2-14 00:15
发的帖子不知道出了啥毛病。
直接引用讨论帖的链接居然打不开,直接贴上地址,居然进入审核。
没办法,明天要早起赶高铁,先 把 方小帅 的 帖子列表贴出。

十八掌就在里面。

https://home.eeworld.com.cn/space-uid-118758.html
强者为尊,弱者,死无葬身之地
点赞  2019-2-14 00:18
赶紧去学习一下去,谢谢给的链接!
专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void
点赞  2019-2-14 08:49
楼主你好,有没有关于仙猫大神的爆料
别打我! 我说。
点赞  2019-2-14 10:33
关于第一掌 main函数的参数,我的自己的一些看法
1.main函数这个东西的参数,如果是在有操作系统的环境下,我觉得这个参数的确是不容忽视的。
但对于单片机这种只有一个main函数的环境下,我觉得,它可能没有那么重要。
RICHENGFENG说的“嵌入式”——我想,他指的很可能是 跑linux一类的unix的较复杂系统。
我记得他之前在 JUPITER干,做的是硬件防火墙,那东东有点像路由器一类的东西,跑的都是和当今的 arm-linux类似的硬件。
所以,在这种环境下,强调main的参数,当然是很重要的。

就像讨论一个被调用的函数的 参数,尤其是这个参数中有以地址传入的,那自然是要小心谨慎。

2.由于我曾经模模糊糊看过 编译器和连接器相关的一些内容,所以我知道,即使是单片机这种简单环境,其实main也不见得一定就是这么单调的函数。
因为在ld中可以指定或者不指定main函数为入口。
虽然我对这块的认知很模糊,但有理由简单推论,假如需要传递一些参数进main函数,在这里也是可以做到的。
那么这个时候同样需要考虑这个问题。

当然,我仍然认为,如果谈论的是单片机,那大可以不考虑上述的第二种情况。
尽管我在做 CSR的蓝牙SOC的时候,这套官方提供的工程,是我目前见过最奇葩的单片机例程。
它因为包含 了 蓝牙协议栈库,还有应用,以及BOOTLOADER之类的东西。
也不知道它是怎么想的,为了 做到所谓的灵活,把整个程序的结构做得很复杂,比如它的APP main函数就不是真正意义上的MAIN函数,看样子,它真正的MAIN函数应该是在 BOOTLOADER里。

这种情形下的APP MAIN函数,我个人认为就有点像 UNIX环境下编写程序里的MAIN函数了。

当然,孤陋寡闻的我,除了这个经历之外,再没见过单片机的MAIN函数有什么花样的。
强者为尊,弱者,死无葬身之地
点赞  2019-2-21 00:48
引用: yangxf1217 发表于 2019-2-14 10:33
楼主你好,有没有关于仙猫大神的爆料

嘿嘿,有机会,我写一套 EEWORLD 老人列传。
强者为尊,弱者,死无葬身之地
点赞  2019-2-21 00:50
引用: 辛昕 发表于 2019-2-21 00:50
嘿嘿,有机会,我写一套 EEWORLD 老人列传。

good idea!对他们充满敬意!
别打我! 我说。
点赞  2019-2-21 12:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复