在erlang上工作久了之后发现自己对底层的知识越来越模糊了,所以决定最近重新学习一下C语言,在有一定基础的情况我觉得应该找一个更高效编程的书来读读(一直在想怎么写出更优雅的代码),翻翻自己的电子书库就找到了《C接口与实现》在优雅编程方面这确实是一本很好的书,书中讲到了文学化的编程。这里是一个书中比较好的内容的摘抄和笔记。
变量命名对每个人程序员来说是很头痛的,一个变量命名的好坏也就基本上体现出这个人的编码素养了。“In general, longer, evocative names are used for global variables and routines, and short names, which may mirror common mathematical notation, are used for local variables.”

这里举了一个很好的理解在for循环中的局部变量i取了一个很冗长的名字,这样在代码的可读性上面就损失了很多。

变量在第一次使用之前声明, 代码的长度不要超过一页 (14寸笔记本一屏最合适了)。

尽量遵循代码就是最好的注释的原则,comments只出现在数据结构/算法的说明中。

软件的可靠性要比效率更重要(其实这一点我们很容易忽略掉,有时候我们希望软件运行的更快一味地去优化,如果此时引入了一个crash的话对客户是灾难性的,还有一点就是legacy broken比一个新的feature或者性能提高十倍更可怕)

书中对宏定义和条件编译的理解很有意思,还几个之前看过一段代码,里面对各个平台定义了不同的宏,’#ifdef #end看着确实难受, 使用交叉编译确实是一个很好的注意。

习题 1.1
<scan forward to a nonspace or EOF 6 >的目是找个一个单词的开始位置,linenum在这里++有以下几个目的:

单词不会跨行出现,在找一个单词的开始位置的时候发现一个‘n’就说明之后出现的单词是在下一行,linenum++这是一个很合理的过程。
如果你在7之后发现一个‘n’之后+1可能出现的结果就是输出这次返回的word的时候linenum +1了。
习题 1.2
这里主要是判断如果单词重复出现的话继续去取下一个单词,之后看下如果大于等于2则输出即可。

-END-

C接口与实现---之一相关推荐

  1. 转 Java知识——精华总结

    一.java概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程.  为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路. ...

  2. 编程资料 -C# 多线程

    编程资料 - 多线程 C#多线程编程实例实战 作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996 单个写入程序/多个阅读程序在.Net ...

  3. 编程资料 -C# 多线程 1

    编程资料 - 多线程 C#多线程编程实例实战 作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996 单个写入程序/多个阅读程序在.Net ...

  4. 使用第三方SDK(如微信、qq、快看、头条等),调用接口405 Method Not Allowed

    使用第三方SDK(如微信.qq.快看.头条等),调用接口405 Method Not Allowed 错误描述:postman请求正常,但客户端调用后接口没有反应,但返回了405错误. 解决方法:第三 ...

  5. OpenFeign服务接口调用

    OpenFeign是什么? Feign是一个声明式的web服务客户端,让编写web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可. OpenFeign能干什么? Feign和OpenF ...

  6. Go 学习笔记(71)— Go 接口 interface (接口定义、接口实现、接口调用、值接收者、指针接收者)

    1. 接口的定义 接口是和调用方的一种约定,它是一个高度抽象的类型,不用和具体的实现细节绑定在一起.接口要做的是定义好约定,告诉调用方自己可以做什么,但不用知道它的内部实现,这和我们见到的具体的类型如 ...

  7. Go 学习笔记(64)— Go error.New 创建接口错误对象、fmt.Errorf 创建接口错误对象、errors.Is 和 errors.As

    1. error 接口定义 除用 panic 引发中断性错误外,还可返回 error 类型错误对象来表示函数调用状态.error 接口是 Go 原生内置的类型,它的定义如下: // $GOROOT/s ...

  8. REST接口设计规范

    REST接口设计规范 (超级详细) RESTful API 设计指南 (阮一峰)

  9. 微机原理—定时计数控制接口

    别看题目很高深,其实就是很简单的定时器和计数器而已. 通常用手机定个闹钟,就是定时器的使用. 工厂里通过传送带上安装传感器,传感器传输给计算机的信号用来计数. 这是一些很简单的应用,通过很小的一个芯片 ...

  10. GPT3 api接口调用

    原标题:OpenAI发布GPT3 api调用接口!可处理几乎所有英文问题 大数据文摘出品 作者:牛婉杨.笪洁琼 两周前,OpenAI又放了个大招:GPT3突然放出,其参数量达到1750亿,相当于160 ...

最新文章

  1. js map、filter、forEach
  2. Windows Phone 8 企业应用部署指南(二)
  3. 真机x86 android分辨率,Android-x86入门之--启动参数设置
  4. 在组策略中用户策略仅对特定计算机生效,将组策略应用到满足条件的计算机---配置组策略筛选...
  5. 开发不能上外网怎么查资料_中考生不能复读,近一半上不了高中,怎么办?
  6. pandas keyerror: 标签_Hinton新作!越大的自监督模型,半监督学习需要的标签越少...
  7. C语言-库文件与头文件
  8. 程序人生之二 IoC—如何才能快乐
  9. VMware workstations pro16.23已经安装vmware tool,Ubuntu仍然无法复制粘贴
  10. Java飞机大战项目实战
  11. java 租房系统源码,JAVA房屋出租管理系统
  12. win7怎么重置计算机,win7系统怎么重置网络?win7重置网络到初始状态的方法
  13. python可以这样学读后感_《Python深度学习》读后感
  14. (转)一位资深程序员大牛给予Java初学者的学习路线建议
  15. FileIO - java
  16. 软件定义的网络(中)
  17. 不太吸引人的成就系统
  18. Linux系统管理-audit文件太多导致du -sh命令卡死
  19. java中的算法(一致性hash算法和数据结构的问题)
  20. Github pages或个人域名实现https访问

热门文章

  1. 最新县及县以上行政区划代码(截止2008年12月31日)
  2. xcode 此工作区的项目包含使用Swift 3.x开发的源代码。此版本的Xcode不支持生成或迁移Swift 3.x目标。使用Xcode 10.1将代码迁移到Swift 4。
  3. HDU2837 Calculation(指数循环节)题解
  4. B: Break Prime
  5. 遍历对象键值对的两种方法
  6. Python新手学习基础之循环结构练习
  7. cocos2d-x-2.2.1环境搭建
  8. 使用Xtrabackup来备份你的mysql
  9. iphone clearColor 不起作用问题
  10. R语言ETL工程:集合运算(intersect/union/setdiff)