随笔分类 -  05.Linux-C

摘要:操作系统:Mac OS X 10.11.5 1、下载书中的源代码:点击下载 2、切换到解压后的目录 unpv13e,先查看下 README,依次执行: 【此处报错】 inet_ntop.c:56:1: error: conflicting types for 'inet_ntop' inet_nto 阅读全文
posted @ 2016-07-19 13:47 52php 阅读(1905) 评论(0) 推荐(0)
摘要:“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。 ——有感于实际编程和开源项目研究。 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所 阅读全文
posted @ 2016-07-19 13:42 52php 阅读(1059) 评论(1) 推荐(1)
摘要:要写网络程序就必须用Socket,这是程序员都知道的。而且,面试的时候,我们也会问对方会不会Socket编程?一般来说,很多人都会说,Socket编程基本就是listen,accept以及send,write等几个基本的操作。是的,就跟常见的文件操作一样,只要写过就一定知道。 对于网络编程,我们也言 阅读全文
posted @ 2016-07-19 13:02 52php 阅读(1165) 评论(0) 推荐(0)
摘要:应该是小试牛刀的时候了。 在 ANSI C 的标准库中,有一个 atexit()函数。如果使用这个函数,当程序正常结束的时候,可以回调一个指定的函数。 atexit()的原型定义如下: int atexit(void (*func)(void)); 1、首先着眼于标识符。 int atexit(vo 阅读全文
posted @ 2016-07-19 07:21 52php 阅读(364) 评论(0) 推荐(0)
摘要:一、指向函数的指针 函数名可以在表达式中被解读成“指向函数的指针”,因此,正如代码清单 2-2 的实验那样,写成 func 就可以取得指向函数的指针。 “指向函数的指针”本质上也是指针(地址),所以可以将它赋给指针型变量。 比如有下面的函数原型: 保存指向此函数的指针的变量的声明如下: 然后写成下面 阅读全文
posted @ 2016-07-19 07:20 52php 阅读(439) 评论(0) 推荐(0)
摘要:一、函数的形参的声明 C 语言可以像下面这样声明函数的形参: 对于这种写法,无论怎么看都好像要向函数的参数传递数组。 可是,在 C 中是不能够将数组作为函数的参数进行传递的。无论如何,在这种情况下,你只能传递指向数组初始元素的指针。 在声明函数形参时,作为类型分类的数组,可以被解读成指针。 可以被自 阅读全文
posted @ 2016-07-19 07:20 52php 阅读(348) 评论(0) 推荐(0)
摘要:一、数组 和 指针 的微妙关系 数组 是指将固定个数、相同类型的变量排列起来的对象。 正如之前说明的那样,给指针加 N,指针前进“当前指针指向的变量类型的长度 X N”。 因此,给指向数组的某个元素的指针加 N 后,指针会指向 N 个之后的元素。 运行结果如下: 0 1 2 3 4 从第 16 行开 阅读全文
posted @ 2016-07-19 07:19 52php 阅读(313) 评论(0) 推荐(0)
摘要:在开发一些小程序的时候,也许我们并不在意作用域的必要性。可是,当你书写几万行,甚至几十万行的代码的时候,没有作用域肯定是不能忍受的。 C 语言有如下 3 种作用域。 1、全局变量 在函数之外声明的变量,默认地会成为全局变量。全局变量在任何地方都是可见的。当程序被分割为多个源代码文件进行编译时,声明为 阅读全文
posted @ 2016-07-19 07:18 52php 阅读(577) 评论(0) 推荐(0)
摘要:一、什么是空指针? 空指针 是一个特殊的指针值。 空指针 是指可以确保没有向任何一个对象的指针。通常使用宏定义 NULL 来表示空指针常量值。 空指针 确保它和任何非空指针进行比较都不会相等,因此经常作为函数发生异常时的返回值使用。另外,对于第 5 章的链表来说,也经常在数据的末尾放上一个空指针来提 阅读全文
posted @ 2016-07-18 16:51 52php 阅读(1120) 评论(0) 推荐(0)
摘要:在实际应用中,有的变量只有几种可能取值。如人的性别只有两种可能取值,星期只有七种可能取值。在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型。所谓枚举是指将变量的值一一列举出来,变量只限于列举出来的值的范围内取值。 定义一个变量是枚举类型,可以先定义一个枚举类型名,然后再说明这个变量是该枚举类 阅读全文
posted @ 2016-07-18 16:37 52php 阅读(512) 评论(0) 推荐(0)
摘要:7.4 共用体 共用体又称为联合体,是由不同的数据类型组成的一个整体。与结构体不同的是,共用体每次只能使用其中一个成员。结构体的总长度是结构体所有成员长度之和,共用体的总长度是其中最长一个数据类型的长度,共用体的所有成员共享这一存储空间。在一些场合中,只需要使用某一类型的变量而其他类型的变量暂时不需 阅读全文
posted @ 2016-07-18 16:35 52php 阅读(633) 评论(0) 推荐(0)
摘要:C 语言中指针的操作非常灵活,它也能指向结构体变量对结构体变量进行操作。在学习结构指针之前,需要再次加深对指针的认识。声明指针变量时所使用的数据类型修饰符实际上的作用是定义指针访问内存的范围,如果指针定义为整型,那么该指针访问内存的范围就是整型变量在内存中所占用的空间大小。虽然每次尝试将指针变量所在 阅读全文
posted @ 2016-07-18 16:34 52php 阅读(1915) 评论(0) 推荐(0)
摘要:7.2 结构体数组的定义和引用 当需要使用大量的结构体变量时,可使用结构体定义数组,该数组包含与结构体相同的数据结构所组成的连续存储空间。如下例所示: 引用结构体数组中元素的一般形式为: 结构体数组名[n].成员名 [] 符号的优先级与.符号相同,适用于自左向右结合性,所以运算时首先获得的是结构体数 阅读全文
posted @ 2016-07-18 16:33 52php 阅读(2334) 评论(0) 推荐(0)
摘要:前面学习了变量和数组这些简单的数据结构,它们的特点是必须使用规定的数据类型。例如数组被定义为整型后,它的所有存储单元都是由整型构成。现实生活中某一类事物的共同属性可能是由不同的数据类型组成的集合,或者某一属性在不同的情况下表现为不同的数据类型。本章将讲解结构体与共用体,用来设计复合数据结构。 7.1 阅读全文
posted @ 2016-07-18 16:32 52php 阅读(1775) 评论(0) 推荐(0)
摘要:ISO C 标准定义的头文件 头文件 说明 验证程序断言 复数算术运算支持 字符分类和映射支持 出错码 浮点环境 浮点常量及特性 整型格式变换 赋值、关系及一元操作符宏 实现常量 本地化类别及相关定义 数学函数、类型声明及常量 非局部goto 信号(第10章) 可变长度参数表 布尔类型和值 标... 阅读全文
posted @ 2016-07-18 16:27 52php 阅读(629) 评论(0) 推荐(0)
摘要:《CMake实践》笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX 《CMake实践》笔记三:构建静态库与动态库 及 如何使用外部共享库和头文件 五、静态库与动态库构建 读者云,太能罗唆了,一个H 阅读全文
posted @ 2016-07-18 16:26 52php 阅读(43201) 评论(8) 推荐(2)
摘要:《CMake实践》笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX 《CMake实践》笔记三:构建静态库与动态库 及 如何使用外部共享库和头文件 四、更好一点的Hello World 没有最好,只 阅读全文
posted @ 2016-07-18 16:25 52php 阅读(43575) 评论(3) 推荐(1)
摘要:《CMake实践》笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX 《CMake实践》笔记三:构建静态库与动态库 及 如何使用外部共享库和头文件 前言: 开发了5,6年的时间,如果没有KDE4,也 阅读全文
posted @ 2016-07-18 16:24 52php 阅读(19937) 评论(1) 推荐(3)
摘要:《CMake实践》的第三章,初试cmake - cmake的helloworld 中的 PROJECT (HELLO) SET(SRC_LIST main.c) MESSAGE(status "This is BINARY dir " ${HELLO_BINARY_DIR}) MESSAGE(sta 阅读全文
posted @ 2016-07-18 16:23 52php 阅读(3556) 评论(0) 推荐(2)
摘要:一、相关概念的介绍 什么是 Makefile?怎么书写 Makefile?竟然有工具可以自动生成 Makefile?怎么生成啊?开始的时候,我有这么多疑问,所以,必须得先把基本的概念搞个清楚。 1、Makefile makefile用来定义整个工程的编译规则。一个工程中的源文件计数,其按类型、功能、 阅读全文
posted @ 2016-07-18 16:22 52php 阅读(821) 评论(0) 推荐(0)