社区导航

 

搜索
查看: 466|回复: 8

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

[复制链接]

7870

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

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

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

来源:EEWorld 编程基础板块,转载请附上链接

八年一梦,洗尽铅华,重头再来


回复

使用道具 举报

7870

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

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

当然,他还健在~~

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

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

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

这让我十分惭愧。
一来,即便当年我如此崇拜的一个人,然而我却连他的历史帖子都没认真看过,这点比起我当年喜欢一个妹子,就恨不得把人家的qq空间全翻个遍——可见,爱情和色相的力量还是远远超过了技术,也说明了我的不谦虚。
二来,他的十八掌,掌掌有始有终,回头看我自己,各种烂尾,诶~~

八年一梦,洗尽铅华,重头再来


回复

使用道具 举报

7870

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2019-2-14 00:15 | 显示全部楼层
本帖最后由 辛昕 于 2019-2-21 00:06 编辑

第一掌 main函数不简单 http://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怎么看待 “当数组作为参数传递时蜕变为指针” 这个解释的说法。





八年一梦,洗尽铅华,重头再来


回复

使用道具 举报

7870

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2019-2-14 00:18 | 显示全部楼层
发的帖子不知道出了啥毛病。
直接引用讨论帖的链接居然打不开,直接贴上地址,居然进入审核。
没办法,明天要早起赶高铁,先 把 方小帅 的 帖子列表贴出。

十八掌就在里面。

http://home.eeworld.com.cn/space-uid-118758.html

八年一梦,洗尽铅华,重头再来


回复

使用道具 举报

1355

TA的帖子

6

TA的资源

版主

Rank: 6Rank: 6

发表于 2019-2-14 08:49 | 显示全部楼层
赶紧去学习一下去,谢谢给的链接!
专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void

回复

使用道具 举报

937

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2019-2-14 10:33 | 显示全部楼层
楼主你好,有没有关于仙猫大神的爆料

点评

嘿嘿,有机会,我写一套 EEWORLD 老人列传。  详情 回复 发表于 2019-2-21 00:50
别打我! 我说。

回复

使用道具 举报

7870

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2019-2-21 00:48 | 显示全部楼层
关于第一掌 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函数有什么花样的。

八年一梦,洗尽铅华,重头再来


回复

使用道具 举报

7870

TA的帖子

54

TA的资源

裸片初长成(中级)

Rank: 11Rank: 11Rank: 11Rank: 11

荣誉会员勋章

 楼主| 发表于 2019-2-21 00:50 | 显示全部楼层
yangxf1217 发表于 2019-2-14 10:33
楼主你好,有没有关于仙猫大神的爆料

嘿嘿,有机会,我写一套 EEWORLD 老人列传。

点评

good idea!对他们充满敬意!  详情 回复 发表于 2019-2-21 12:58

八年一梦,洗尽铅华,重头再来


回复

使用道具 举报

937

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

发表于 2019-2-21 12:58 | 显示全部楼层
辛昕 发表于 2019-2-21 00:50
嘿嘿,有机会,我写一套 EEWORLD 老人列传。

good idea!对他们充满敬意!
别打我! 我说。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /6 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-10-15 06:34 , Processed in 0.256726 second(s), 14 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表