如何提升自己的C水平?

dsoyy 2013-12-27 03:29:02
大家好,自我介绍一下,硬件工程师,暂时在做软件,C也用了很多年,一般功能都能实现,看代码的时候不愿意多看。
总觉得这么多年C的水平没有提升,还是仅仅限于功能的实现,没有什么算法,也没有考虑优化,这两天看公司的代码在不情愿的抵触情绪中,也人知道自己水平的欠缺,想进一步提升,争取上一个台阶,请大家指点,不吝赐教,各抒己见。
...全文
389 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
newpb80 2013-12-30
  • 打赏
  • 举报
回复
请高手推荐基本源代码分析的C语言方面的书
newpb80 2013-12-30
  • 打赏
  • 举报
回复
eclipse 下比较好的调试C 的插件是什么
小闲123 2013-12-29
  • 打赏
  • 举报
回复
要经常自己动手调试,多看别人编的程序进行比较
SKATE11 2013-12-27
  • 打赏
  • 举报
回复
不要迷信书、考题、老师、回帖; 要迷信CPU、编译器、调试器、运行结果。 并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。 任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实! 有人说一套做一套,你相信他说的还是相信他做的? 其实严格来说这个世界上古往今来所有人都是说一套做一套,不是吗? 不要写连自己也预测不了结果的代码! 电脑内存或文件内容只是一个一维二进制字节数组及其对应的二进制地址; 人脑才将电脑内存或文件内容中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文 字母、阿拉伯数字、中文/韩文/法文……字符/字符串、汇编指令、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针 的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息…… 进程都退出了,输入缓冲区刷不刷新都无关痛痒。 不要企图优雅的结束(因为这是不可能办到的) 而要在烂的不能再烂的摊子上也能重整河山! 这个世界上最大的差别和最远的距离都存在于“说”和“做”之间。 常立志不如立长志,立长志不如立即干! 崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。 单步类的实例“构造”或“复制”或“作为函数参数”或“作为函数返回值返回”或“参加各种运算”或“退出作用域”的语句对应的汇编代码几步后,就会来到该类的“构造函数”或“复制构造函数”或“运算符重载”或“析构函数”对应的C/C++源代码处。 (Turbo C或Borland C用Turbo Debugger调试,Linux或Unix下用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
奕诚 2013-12-27
  • 打赏
  • 举报
回复
引用 11 楼 dsoyy 的回复:
硬件也要写程序,简单地是单片机,ARM,DSP,复杂的LINUX等,不光是电路,模拟和数字,程序也要回。 不过都不够精。
引用 10 楼 zmlovelx 的回复:
软硬通吃不错。 抵触可能是因为没有兴趣,没兴趣想提升比较难吧。
这是要搞底层驱动的节奏?
d4shman 2013-12-27
  • 打赏
  • 举报
回复
引用 6 楼 cheng7068 的回复:
多实践多看书,理论结合实践,项目结合学习,进步应该会很快
+1
破碎的泡泡 2013-12-27
  • 打赏
  • 举报
回复
个人感觉,在使用过程中学习最快。最好是找点相关的工作边做边学。
dsoyy 2013-12-27
  • 打赏
  • 举报
回复
硬件也要写程序,简单地是单片机,ARM,DSP,复杂的LINUX等,不光是电路,模拟和数字,程序也要回。 不过都不够精。
引用 10 楼 zmlovelx 的回复:
软硬通吃不错。 抵触可能是因为没有兴趣,没兴趣想提升比较难吧。
帅得不敢出门 2013-12-27
  • 打赏
  • 举报
回复
软硬通吃不错。 抵触可能是因为没有兴趣,没兴趣想提升比较难吧。
赵4老师 2013-12-27
  • 打赏
  • 举报
回复
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 对学习编程者的忠告: 眼过千遍不如手过一遍! 书看千行不如手敲一行! 手敲千行不如单步一行! 单步源代码千行不如单步对应汇编一行! VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。 (Turbo C或Borland C用Turbo Debugger调试,Linux或Unix下用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
自信男孩 2013-12-27
  • 打赏
  • 举报
回复
做硬件的,对于C语言的算法要求的不是很高吧。我是做软件的,对做硬件的C语言要求不是很高吧~~~
dingcmhk 2013-12-27
  • 打赏
  • 举报
回复
其实看代码才是迅速提高自己水平的最佳方法,没有之一
风行踩火轮 2013-12-27
  • 打赏
  • 举报
回复
多实践多看书,理论结合实践,项目结合学习,进步应该会很快
ForestDB 2013-12-27
  • 打赏
  • 举报
回复
先从不抵触开始。 学习,然后改善。
dsoyy 2013-12-27
  • 打赏
  • 举报
回复
要求的功能一般情况都没问题,但是代码的好不好,明眼人一看就知道了 这是要改变的
图灵狗 2013-12-27
  • 打赏
  • 举报
回复
改变自己,然后坚持下去!
引用 楼主 dsoyy 的回复:
大家好,自我介绍一下,硬件工程师,暂时在做软件,C也用了很多年,一般功能都能实现,看代码的时候不愿意多看。 总觉得这么多年C的水平没有提升,还是仅仅限于功能的实现,没有什么算法,也没有考虑优化,这两天看公司的代码在不情愿的抵触情绪中,也人知道自己水平的欠缺,想进一步提升,争取上一个台阶,请大家指点,不吝赐教,各抒己见。
u012997273 2013-12-27
  • 打赏
  • 举报
回复
支持楼主,个人觉得C语言本身没什么学的,关键是在一个平台上应用,也就是说C的具体应用才是重要的,勿喷!
zhuobattle 2013-12-27
  • 打赏
  • 举报
回复
你能突破自己不断进步就会不断提升了,你自己说的看代码不想多看,那么你必须学会看代码, 突破自己这样才能提高啊,不突破永远在原地了

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧