本书与《深入淺出 Hello World》有着类似的心路历程,旨在以实验的方式去探究类似 Hello World 这样的小程序在开发与执行过程中的微妙变化,一层层揭开 C 语言程序开发过程的神秘面纱,透视背后的秘密,不断享受醍醐灌顶的美妙。 背景 笔者 2007 年开始系统地学习 Shell 编程,并在兰大开源社区写了序列文章。 在编写《Shell 编程范例》文章的《进程操作》一章时,为了全面了解
C 语言是一种高级语言,最初由 Dennis M. Ritchie 为了开发一个操作系统而设计,最早在 1972 年在 DEC PDP-11 计算机上被首次实现。
本书引用的代码段示例都很短,按书照敲或复制也是一种学习方式。 example/ 目录整 理了部分示例代码,但是建议以书内讲叙或外链接为准。作者自己在 linux 系统下以 vim8.1 版本测试,Windows 与低版本虽未全面测试,但相信 vim 本身的兼容性也基本适 用了。
这是一本在国外比较有名的 Scheme 编程语言的入门教材。本教材适合任何对 Scheme 编程语言感兴趣的人阅读,尤其是有其他编程语言(特别是动态语言)编程经验,希望快速了解 Scheme 的不同点并且快速上手写点东西的人。然而希望系统学习 Scheme 编程的学生仍然是本文的读者之一。 该教程中的大部分内容都能在常见的Scheme入门教材中找到,本教材中比较有特色的是关于continuatio
对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。 对于一个架构师而言,掌握各种语言的优势并可以运用到系统中,由此简化系统的开发,是其架构生涯的第一步。 对于一个开发团队而言,能在短期内开发出用户满意的软件系统是起核心竞争力的体现。 每一个程序员都不能固步自封,要多接触新的行业,新的技术领域,突破自我。
Tea 语言是一个和 运行效率接近 C++、开发效率超越 Java 的编程语言。 编译为原生机器码(汇编),兼容主要操作系统和平台。 现代化语言,支持 GC、面向对象、函数式编程、类型推导等流行语言特性。 C 风格,Java 用户可以很快上手。更实用,更适合敏捷开发。 国产。全中文支持。
Go 语言是一种编程语言,最初由 Robert Griesemer,Rob Pike 和 Ken Thompson 于 2007 年在 Google 开发。 它是一种静态类型语言,其语法类似于 C 语言。
Java 是一种高级的编程语言,它最初是由 Sun 公司开发并于 1995 年公开发布的。Java 可以在不同的平台上运行,例如:Windows,Mac OS 和不同版本的 Unix。本指南将让你对 Java 有一个彻底的认识与了解。
我们有些时候需要使用一些固定的名称来代表固定的数值,比如在计算你的课程成绩的时候,有的课程会出现用英文字母 A-F 来打分,这个时候你需要换算为一个固定的分值来计算平均分。要实现这个功能,你可以选择在程序的开始定义一系列的常量,但是这样的定义会非常繁琐,而且不方便维护。这个时候就出现了一种变量的类型,枚举。 1. 声明 enum 声明一个枚举类型,可以采用关键字 enum 加上一个自定义的名称,再
由于 C 语言是强类型语言,不能如同某些语言一样,可以在变量中存储任意元素。所以在有的时候会遇到一些问题。比如你有一个变量需要存储计算结果,计算结果有时可能是整数,有时可能是浮点数。这里我们介绍其中可以做到不更改变量名就可以存储不同类型数据的变量。 1. 声明 union 和之前介绍的 struct 的声明方式是类似的,通过关键字 union ,以及这个 union 的名称,还有一系列的变量类型以
在前面我们学习了很多种类的变量,每个变量都会有一种类型。但是如果我们需要定义一个变量,可以同时存储不同的类型的变量,那会在很多场合下很方便的使用。比如我们常见的通信录,里面会包含很多信息,比如姓名,电话号码,邮箱地址等信息。这里面就会涉及到整数,字符串等等。如果每个人建立的时候都分别声明一次其中的变量,那么工作量就会非常的大,也很容易出现错误。 那么怎么解决这种情况呢?这就是今天我们要讲解的内容。
我们通常意义上的常量其实和英语中的常量这个单词不是一个意思,汉语中的常量对应的是 Literal(字面值),而不是 Constant(常量)。 这里我们分别讲一下这两个内容,大家就会有自己的对于“常量”的相关的认识了。 1. 字面值 字面值通常用来表示一个固定的值。这些值可以直接用在程序中,而不需要像变量一样经过声明和初始化以后才可以使用。 字面值分为以下几种: 1.1 整数 这里的整数包含十进制
什么是标准?标准是对重复性事物和概念所做的统一规定,他以科学技术和实践经验的结合成果为基础,经有关方面协商一致,由主管机构批准,以特定形式发布作为共同遵守的准则和依据。 在这个标准概念大行其道的今天,如果大家在生活中稍微注意一下,其实可以很容易发现,我们生活在一个标准化的世界里,每个产品的外包装或者标签上都会注明相应的执行标准。标准贯穿着我们的衣食住行。。总而言之,标准无处不在。 当然标准具有行业
上一个小节 C 语言的程序结构中我们简单的认识了一下 C 语言的程序到底由那些部分组成,但是仅仅了解 C 语言的程序结构还不够,仅仅是万里长征走完了第一步,后面还需要进行很多的步骤才能让程序成为一个可以使用的工业产品。还记的上一个小节中我们提到的 gcc 吗?其实这是一个 C 语言的编译器,这一个小节我们就来学习一下编译器这个概念。 1. C 语言编译器 每个语言都需要编译器,甚至包括可以直接操作
在线程不安全的 map 中我们学习了 map 的遍历,里面使用了一个叫 range 的关键字来对 map 进行遍历操作。当时还提到了切片和数组都可以使用这个方法遍历。本文就来详细学习一下 range 关键字的用法。 Tips:本文提及的 map 均是线程不安全的 map。线程安全的 map 及其遍历方法参照 Go 语言中的map 一文。 1. 基本用法 range 可以用来遍历的对象有数组、切片、