作品简介

要成为一名合格的C程序员,仅仅依靠课堂上的所学所练是远远不够的,实际的软件开发对从业者提出了更高的要求。本书重在讲述从学生成长为一名职业化C程序员的必备技能和关键要素,为众多同道中人指点迷津。

本书从C语言的发展历程讲起,分析了学校和职场的不同,并结合丰富的代码实例讲述了程序的样式、变量和函数、内存操作、文件、指针和结构体、算法和协议、程序重构、SQL语句和shell命令以及程序问题排查等诸多C程序开发中的典型问题。帮助读者形成良好的编码规范,增强其动手能力,深入了解软件研发流程及团队合作的重要性。

本书适用于在校计算机专业学生或该专业的应届毕业生阅读,也适用于刚入职的应届毕业生参考。通过阅读本书,读者将对软件开发有一个整体的认知,并能够准确定位自身不足,快速提高自身能力,轻松获得未来必经之路上的通关密码。

周兆熊,硕士研究生毕业于南京邮电大学计算机应用技术专业,目前在中兴通讯重庆研发中心从事软件开发工作。 在工作中善于学习和总结,多次被评为部门优秀员工,曾获所在研究院组织的“代码之美”征文大赛的铜奖及公司“维基开发”大赛的一等奖。 工作之外笔耕不辍,乐于分享,将自己工作及学习的心得发表在博客上,深受广大读者的好评。 同时,他也是《信息通信技术百科全书》的编者之一。

作品目录

  • 前 言
  • 第1章 概述
  • 1.1 C语言的发展历史
  • 1.1.1 C语言之父
  • 1.1.2 C语言的演进
  • 1.2 C语言的主要特点
  • 1.3 常用工具软件
  • 1.3.1 Microsoft Visual Studio/Microsoft Visual C++ 6.0
  • 1.3.2 Source Insight
  • 1.3.3 Notepad++
  • 1.3.4 Araxis Merge/Beyond Compare
  • 1.3.5 Evernote(印象笔记)
  • 1.3.6 FTP工具(如FileZilla等)
  • 1.3.7 UltraEdit
  • 1.4 小结
  • 第2章 学校到职场
  • 2.1 认清自身不足
  • 2.2 破除错误观念
  • 2.3 工作所需软技能的培养
  • 2.4 小结
  • 第3章 程序的样式
  • 3.1 头文件
  • 3.2 源文件
  • 3.3 空格和空行
  • 3.3.1 空格
  • 3.3.2 空行
  • 3.4 大括号
  • 3.4.1 初始化数组变量
  • 3.4.2 定义和初始化结构体变量
  • 3.4.3 用在if、else、else if、for、while、do等语句中
  • 3.4.4 用在switch语句中
  • 3.4.5 用在函数中
  • 3.5 注释
  • 3.6 小结
  • 第4章 变量和函数
  • 4.1 数据类型
  • 4.1.1 整型
  • 4.1.2 字符型
  • 4.2 变量及函数
  • 4.3 静态变量及其应用
  • 4.4 小结
  • 第5章 内存操作
  • 5.1 memset和memcpy
  • 5.1.1 memset
  • 5.1.2 memcpy
  • 5.2 strcat和strncat
  • 5.3 strcpy和strncpy
  • 5.4 strcmp和strncmp
  • 5.5 小结
  • 第6章 文件
  • 6.1 常用文件操作函数
  • 6.1.1 fopen
  • 6.1.2 fclose
  • 6.1.3 fgetc
  • 6.1.4 fgets
  • 6.1.5 fflush
  • 6.1.6 fputc
  • 6.1.7 fputs
  • 6.1.8 fread
  • 6.1.9 fwrite
  • 6.1.10 ftell
  • 6.1.11 feof
  • 6.2 配置文件
  • 6.2.1 软件概况
  • 6.2.2 程序流程
  • 6.2.3 软件测试
  • 6.3 makefile文件
  • 6.3.1 语法规则
  • 6.3.2 示例程序
  • 6.3.3 makefile文件内容
  • 6.3.4 运行结果
  • 6.3.5 说明
  • 6.4 小结
  • 第7章 指针和结构体
  • 7.1 简介
  • 7.2 示例流程
  • 7.3 示例程序
  • 7.4 程序详解和测试
  • 7.4.1 程序详解
  • 7.4.2 程序测试
  • 7.5 小结
  • 第8章 算法和协议
  • 8.1 算法及其应用
  • 8.1.1 概述
  • 8.1.2 图形化表示
  • 8.1.3 实际应用
  • 8.1.4 算法设计原则
  • 8.2 协议及其应用
  • 8.2.1 概述
  • 8.2.2 示例协议
  • 8.2.3 示例程序
  • 8.2.4 程序测试
  • 8.3 小结
  • 第9章 程序重构
  • 9.1 重构原因
  • 9.2 重构原则
  • 9.3 重构流程
  • 9.4 重构示例
  • 9.5 小结
  • 第10章 SQL语句和Shell命令
  • 10.1 SQL语句
  • 10.1.1 交互方式
  • 10.1.2 交互流程
  • 10.1.3 程序框架
  • 10.1.4 注意事项
  • 10.2 Shell命令
  • 10.2.1 示例流程
  • 10.2.2 目录结构
  • 10.2.3 示例程序
  • 10.2.4 makefile文件
  • 10.2.5 运行结果
  • 10.2.6 注意事项
  • 10.3 小结
  • 第11章 程序问题排查
  • 11.1 日志
  • 11.1.1 调试方法
  • 11.1.2 日志概况
  • 11.1.3 日志函数
  • 11.1.4 日志说明
  • 11.2 配置项问题
  • 11.2.1 问题描述
  • 11.2.2 排查过程
  • 11.2.3 排查总结
  • 11.3 时序问题
  • 11.3.1 问题描述
  • 11.3.2 程序流程
  • 11.3.3 初步分析
  • 11.3.4 问题定位
  • 11.3.5 排查总结
  • 11.4 变量初始化问题
  • 11.4.1 问题1
  • 11.4.2 问题2
  • 11.4.3 排查总结
  • 11.5 数据表索引问题
  • 11.5.1 问题描述
  • 11.5.2 程序流程
  • 11.5.3 初步分析
  • 11.5.4 问题定位
  • 11.5.5 排查总结
  • 11.6 小结
  • 附录A 同行评审
  • A.1 同行评审定义
  • A.2 推广同行评审原因
  • A.3 同行评审对象
  • A.4 同行评审类型
  • A.5 审查
  • A.6 代码评审
  • A.7 一些建议
  • A.8 小结
  • 附录B 我在南邮的3年
  • 保研生涯
  • 研一生活
  • 研二生活
  • 研三生活
  • 总结篇
  • 参考资料
展开全部