查看: 15092| 回复: 10
跳转到指定楼层
上一主题 下一主题
收起左侧

[学C/C++] 分享一些C语言相关的书籍,软件使用神马的(找到新东西会持续更新)

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 slaink 于 2012-4-20 10:38 编辑

想发编程算法的,可惜俺积分太低……(另外吐槽一下那个橙色的字体,每次我都看不到呢……)

基础性的书籍我就不分享了,主要是实践中需要的一些工具以及书籍。断断续续写了一年C代码了,虽然还是水货一个,但是还是能分享点东西的(其实真的不多……)。

不知道对大家有没有帮助……(别当水贴就成)

再吐个槽,要是这里支持markdown就好了~

1.书籍

C traps and pitfalls

http://www.evernote.com/shard/s1 ... 93094accde88babdf03

这本很推荐,写代码之后看很有共鸣,很多很容易出的错误,虽然是老书(貌似那个时候C的ANSI还没有定下来呢)但是很推荐。

OOC

http://www.planetpdf.com/codecuts/pdfs/ooc.pdf

这本正在看,过些日子重新大改代码可能用得到,讲的是使用面向对象的方式进行C编程(还是害怕C++的低效,毕竟做的是FS,虽然用户态)。

2.代码调试

2.1 GDB 对于我等使用linux的,当然没有什么IDE好用(Code::Block什么的也有啦),所以就得学习gdb的使用,事实上GDB用好了还是不错的。GDB下载就不需要提供了吧,linux都能找到,win的话是否需要cygwin才能用我不太清楚。

没试过GDB的话建议尝试一下,挺好用的,基础的命令这里说一下吧(我常用的):
  1. break <function name or line number> 下断点
复制代码
(支持条件断点例如, break 39 if a == 1 就是当a=1时候在L39断一下)
  1. step 单步执行
复制代码
  1. continue 执行到下一个断点
复制代码
  1. run 执行代码
复制代码
  1. display <variable or expression> 监视某个东西(作用域内会一直显示)
复制代码
  1. print <variable or expression> 显示某个东西
复制代码
(只显示一次,如果用赋值语句的话还能修改变量的值)
  1. l <funcion or line number or null> 显示代码 多次点l可以顺序显示
复制代码
watch <variable> 监视变量,当变量修改的时候下断点
(同样还有awatch什么的,可以设置是修改变量或者访问变量的时候断)

我常用的貌似就这些,还有设置多线程并行方式什么的都是查到了才用的……忘记了。
另外这个可以attach process的,使用
  1. gdb -p <process id>
复制代码
就行了,适合调试daemon什么的。
GDB的进阶可以这里找到:
GDB Documentation:http://www.gnu.org/software/gdb/documentation/
Debugging with GDB: http://sources.redhat.com/gdb/current/onlinedocs/gdb.html

2.2 Valgrind
这个绝对神器,检测race condition,memory leak什么的巨好用。不过是命令行的,官方有QT写的前端,叫什么忘记了Valk神马的。

基础命令的话就是
  1. valgrind --leak-check=full --track-origins=yes <program name and arguments>
复制代码
这个命令算是常用得了,可以检测memory leak,并且可以搜索到产生错误的源头(那个--track-origins不一定对,我都是自动补全的)。产生的错误精确到行,比如说使用了未初始化的变量,或者数组越界,还有对某指针malloc之前其实本身指向了一块儿没有free的内存什么的,还能告诉你那个未初始化的变量、没释放的内存是哪儿申请的。程序结束之后也会给你一个清单都有哪些内存申请了,释放了哪些,没释放的都在哪里。对于我这种编程不怎么细心的很好用。

这个东西可以在官网上 http://valgrind.org/ 找到下载以及用户文档

3.3 静态代码检测工具
同样因为没有IDE,所以同样需要找其他开源工具实现。GCC直接加-WALL可以获得很多静态检查的建议,如果不喜欢GCC,也有很多第三方开发的,我用的是伯克利的那个,其实老的有sprint(就是LC-lint,但是太老了,看最后更新是好几年前了)。

从这里可以找到一些静态检查工具:http://spinroot.com/static/


4.乱七八糟

4.1 StackOverFlow
强烈推荐,注册个帐号之后,就提问吧,基本都能找到答案(我很难得的提了几个没人知道的~)

暂时到这里……再用到什么东西会来分享的。

有谁用过上面东西,有什么心得也欢迎告诉我啊~真心期待大牛说点经验的。

评分

参与人数 5大米 +145 收起 理由
Sai_L + 3 很有用的信息!
dalejace + 2 thanks for sharing.
huizi3166 + 20 多谢分享!
modifiedname + 100
yue + 20 赞~

查看全部评分


上一篇:[数据结构] 学习资料汇集
下一篇:分享一个练习编程的网站
推荐
LLL___DDD 2019-7-11 07:48:47 | 只看该作者
全局:
借楼问问~有人推荐写make file 的资料吗?这两天工作上要写,完全云里雾里,脑壳疼~
回复

使用道具 举报

全局:
Boost Lib 现在还有人用么?
回复

使用道具 举报

推荐
Crosstalk 2016-9-8 04:06:41 | 只看该作者
全局:
重新捡起C开始学
回复

使用道具 举报

🔗
xx8833 2012-7-25 17:23:40 | 只看该作者
全局:
本帖最后由 xx8833 于 2012-7-25 17:33 编辑

STL是C++的标准模版库,里面实现了大量算法,质量很高,真正玩C++的应该不会不用吧。入门不难,但要高效使用就比较难。
下面是微软的工程师Stephan T Lavavej在C9上详细讲解STL的视频,我大致看了下,内容很全,某些课程也很有深度,就和大家分享一下:
http://channel9.msdn.com/Tags/stephan-t-lavavej
读过任何一本C++入门书籍的看这个就不会有困难了。
现在已经有三个部分了,第一个是STL基础篇10节课,第二个是STL进阶有6节课,现在在更新的是C++核心语法有3节课。C++核心语法不是简单的复述C++入门书籍,而是讨论和模版有关的复杂问题。

回复

使用道具 举报

🔗
leonsu777 2012-8-7 23:25:51 | 只看该作者
全局:
GDB 有gui前端 DDD,可以很方便画出内存布局
回复

使用道具 举报

🔗
senbo_qi 2012-12-21 05:43:47 | 只看该作者
全局:
看到这才发现自己C学的水的要死
回复

使用道具 举报

🔗
kaitian521 2013-1-20 21:10:13 | 只看该作者
全局:
GDB再实际工作中用的机会真的不少
回复

使用道具 举报

🔗
joamitith 2013-3-12 01:08:29 | 只看该作者
全局:
果断需要升级机子学编程
回复

使用道具 举报

🔗
aq13 2013-9-21 14:39:27 | 只看该作者
全局:
有没有大牛能结合quant或mfe相关工作、课程介绍一下c++经验、要求?谢谢~
回复

使用道具 举报

🔗
walkerxian 2013-11-17 12:50:00 | 只看该作者
全局:
看到这帖子,又有些开始怀念C的感觉
回复

使用道具 举报

无效楼层,该帖已经被删除
您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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