
C
_好好编程_
Errors: 0 Warnings: 0
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言推荐书单
关于C 关于C编程,我觉得有下面3个层次: * 基础 - 基本语法 * 进阶 - 避免常见错误 与 良好的风格 * 高手 - 软件架构 基础语法是固定的,学习起来比较容易,软件架构则需要阅读很多优秀的代码来培养, 而常见的错误与良好的风格则可以借鉴前人的经验。 以下介绍一些书籍,希望它们可以使用你的代码更加优美。 《系统程序员成长计划》 这本书的作者是李先静老师,这是他编...原创 2018-05-04 17:25:29 · 1204 阅读 · 0 评论 -
数组 | C语言
数组 int a[10]中的a是数组名,它指向数组中的第一个元素。但是当其做为sizeof的操作数,或者使用&取地址的时候,要把a作为带个数组来考虑。 数组名与数组名取地址 先看一个例子: int a[10] = {0}; printf("%p, %p\n", a, &a); 打印结果是0xbfc077b4, 0xbfc077b4。两者的值是一样的,但是它们的类型...原创 2018-05-04 17:51:46 · 436 阅读 · 0 评论 -
复杂声明 | C语言
今天看了《C专家编程》里的’分析C语言的声明’一章,终于懂了C语言的复杂声明是怎么解析的。虽然在平时写代码的时候用到复杂声明的情况几乎没有,这里还是做一个记录,也是加深对C语言声明的理解。 声明的优先级规则 以下规则来自《C专家编程》。 C语言声明的优先级规则: A. 声明从它的名字开始读取,然后按照优先级顺序依次读取。 B. 优先级从高到低依次是: B1. 声明中被括...原创 2018-05-04 17:54:27 · 1050 阅读 · 0 评论 -
const 关键字 | C语言
const 的定义 任何变量的声明都可以使用const限定符限定。该限定符指定变量的值不能被修改。对数组而言,const限定符指定数组所有元素的值都不能被修改。 例如: const double e = 2.71828182845905; const char msg[] = "warning: "; e = 3.14; // 非法 msg[0] = 'a'; // 非...原创 2018-05-04 17:55:52 · 173 阅读 · 0 评论 -
do{}while(0)编写单进单出函数 | C语言
do{}while()这个语法在C编程中我自己很少使用,直到有一天读到了李先静先生的《系统程序员成长计划》,发现了它还有这种使用方法。 我们可以使用do{}while(0)来编写单进单出函数。 在一些函数里,我们希望在函数的入口与出口处做一些配对的操作,比如内存的申请与释放、文件的打开与关闭、加锁与解锁等。在这样的函数里可以设计成单进单出,好处是后期维护不容易出错。 假设我们有一个函数,里面...原创 2018-05-04 17:56:35 · 833 阅读 · 0 评论 -
常见命名规则 | C语言
unix like 单词用小写字母,每个单词直接用下划线”_”分割,例如text_mutex,kernel_text_address。 Windows风格(大驼峰法) 大小写字母混用,单词连在一起,每个单词首字母大写,如OpenFile,MaxValue。 小驼峰法 第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母,例如:myFirstName、...原创 2018-05-04 18:03:18 · 589 阅读 · 0 评论 -
变量解析 | C语言
变量的定义与赋值 编程语言中有一个比较容易混淆的概念就是“变量的地址”与“变量的值”。因为在编程语言中我们用同一个标号来表示这两个东西,由编译器根据上下文判断它的具体含义。 让我们看下最简单的变量的定义与赋值: int a; // 1 a = 9; // 2 第1行,表示定义了一个变量a。对于编译器来说,编译器为a分配一个地址,这个地址代表一个存储空间,空间中存储...原创 2018-05-04 18:03:59 · 467 阅读 · 0 评论