• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

C缺陷与陷阱(C Traps and Pitfalls)学习笔记

C缺陷与陷阱(C Traps and Pitfalls)学习笔记
前言 近来学习操作系统这门课,课程的实验基于linux 0.11,于是从图书馆借来了 C Traps and Pitalls 和 Expert C programming,打算提高一下c语言水平。先从前一本开始。这本书很薄,即使是英文版也只有140多页,讲的都是c语言中容易犯错的地方。注意:这篇笔记并没有包括整本书的内容,而只是摘抄了本人需要的知识(加上了一……继续阅读 »

快速了解C/C++的左值和右值

快速了解C/C++的左值和右值
最近在segmentfault上看到一个提问《c++隐式的类类型转换问题》:一时不知怎么回答,查阅相关资料后整理了本文,以供参考学习。 定义 早期的C给出的定义:左值是一个表达式,可能出现在赋值操作的左边或右边,但右值只能出现在右边。比如: a * b = 42; // 编译错误, 说明 a * b 不是左值 因为上面的定义实在太模糊,导致左值和右值很难被理……继续阅读 »

深入理解计算机之hello world背后的故事

深入理解计算机之hello world背后的故事
最近打算巩固计算机基础知识,网上一本评价极高的教材——深入理解计算机系统,下面要将讲的内容来自第一章一个小例子,不过对我们了解C语言如何从源程序到最终的可执行程序很有帮助,下面让我们开始吧。 一步到位的hello world 首先一个简单的C语言版本的hello world例子,保存在文件hello.c中。 #include <stdio.h> ……继续阅读 »

SQLite之C接口

SQLite之C接口
1、sqlite之C接口简介 1.1 sqlite3_open int sqlite3_open ( const char *filename, /* Database filename (UTF-8) */ /* 数据库将采用UTF-8的编码方式,sqlite3_open16采用UTF-16的编码方式 */ sqlite3 **ppDb ……继续阅读 »

C语言-内存分配

C语言-内存分配
内存五个区域 栈区由编译器自动编译释放,比如: //此时将存储在常量区的字符串suica拷贝到栈区. char string[] = "suica"; 堆区堆区需要程序员手动分配,手动释放.在C语言中可使用malloc进行分配: //给指针p分配一个大小的内存空间 int* p = (int *) malloc (1); 静态区只初始化一……继续阅读 »

C语言简单记-标识符,注释,数据类型,变量

C语言简单记-标识符,注释,数据类型,变量
“C语言简单记”基于我以前学习过程中做过的笔记、随笔,特意整理了一下,只是简单的记录了一些比较重要的知识点,不会去深入探究,面向的是一些有语言基础的人查找阅读,还请见谅,谢谢~~~ 标识符命名规范 1.只能由字母、数字、下划线_组成 2.严格区分大小写 3.不能以数字开头 4.不可以使用关键字作为标识符 注释 1.单行注释 // 进行……继续阅读 »

消息路标和函数调用链

消息路标和函数调用链
之前介绍了极客讨论器通过分析C/C++/Java/Python/C#/Objective-C代码来生成函数地图,和按调用顺序查看源代码的旅行模式。 而在函数地图下,还可以通过给函数节点设置路标的方式,快速查看代码间的调用关系。路标是通过批注消息设置的,所以叫“消息路标”。简单来说,批注消息批注的代码属于哪个函数,对应的函数节点上就会设置一个路标。如图: 消息……继续阅读 »

理解 GLib 的单元测试框架

理解 GLib 的单元测试框架
单元测试 单元测试,那些似乎从来都不怎么有用的软件工程教科书里有关于它的确切定义。在本文中,只是将其视为检验某个函数是否正确的一种手段。可将单元测试想象为质检员,将要检验的函数想象为待出厂的零件。 例如,我想检验我实现的双向链表容器 PmList 的 pm_list_append 函数,我可以为它写一个测试程序: #include <stdio.h&g……继续阅读 »

理解 GNU Libtool

理解 GNU Libtool
这篇文章与『理解 GLib 的单元测试框架』一文有些渊源,因为后者在几个示例中使用了 libtool 产生库文件与应用程序文件。 田园时代 我要写一个叫做 foo 的库,它提供一个什么也不做的函数。这个库的头文件为 foo.h: #ifndef FOO_H #define FOO_H void foo(void); #endif foo.c 是这个库的实……继续阅读 »

Lex词法分析器

Lex词法分析器
LEX/FLEX词法分析器 CONTENTS: [TOC] 这篇文章的内容包括: lex语法格式 linux下flex的安装和使用 flex实例 flex源代码的编译和使用 Lex/Flex词法分析器 Lex是LEXical compiler的缩写,是Unix环境下非常著名的工具,主要功能是生成一个词法分析器(scanner)的C源码,……继续阅读 »