GitHub中文社区

C 语言多字节字符

多字节字符本章介绍 C 语言如何处理非英语字符。Unicode 简介C 语言诞生时,只考虑了英语字符,使用7位的 ASCII 码表示所有字符。ASCII 码的范围是0到127,也就是最多只能表示100多个字符,用一个字节就可以表示,所以char类型只占用一个字节。但是,如果处理非英语字符,一个字节就

C 语言命令行环境

命令行环境命令行参数C 语言程序可以从命令行接收参数。$ ./foo hello world上面示例中,程序foo接收了两个命令行参数hello和world。程序内部怎么拿到命令行参数呢?C 语言会把命令行输入的内容,放在一个数组里面。main()函数的参数可以接收到这个数组。#include &l

C 语言多文件项目

多文件项目简介一个软件项目往往包含多个源码文件,编译时需要将这些文件一起编译,生成一个可执行文件。假定一个项目有两个源码文件foo.c和bar.c,其中foo.c是主文件,bar.c是库文件。所谓“主文件”,就是包含了main()函数的项目入口文件,里面会引用库文件定义的各种函数。// File f

C 语言变量说明符

变量说明符C 语言允许声明变量的时候,加上一些特定的说明符(specifier),为编译器提供变量行为的额外信息。它的主要作用是帮助编译器优化代码,有时会对程序行为产生影响。constconst说明符表示变量是只读的,不得被修改。const double PI = 3.14159;PI = 3; /

C 语言文件操作

文件操作本章介绍 C 语言如何操作文件。文件指针C 语言提供了一个 FILE 数据结构,记录了操作一个文件所需要的信息。该结构定义在头文件stdio.h,所有文件操作函数都要通过这个数据结构,获取文件信息。开始操作一个文件之前,就要定义一个指向该文件的 FILE 指针,相当于获取一块内存区域,用来保

C 语言I/O 函数

I/O 函数C 语言提供了一些函数,用于与外部设备通信,称为输入输出函数,简称 I/O 函数。输入(import)指的是获取外部数据,输出(export)指的是向外部传递数据。缓存和字节流严格地说,输入输出函数并不是直接与外部设备通信,而是通过缓存(buffer)进行间接通信。这个小节介绍缓存是什么

C 语言预处理器

预处理器(Preprocessor)简介C 语言编译器在编译程序之前,会先使用预处理器(preprocessor)处理代码。预处理器首先会清理代码,进行删除注释、多行语句合成一个逻辑行等工作。然后,执行#开头的预处理指令。本章介绍 C 语言的预处理指令。预处理指令可以出现在程序的任何地方,但是习惯上

C 语言Enum类型

Enum 类型如果一种数据类型的取值只有少数几种可能,并且每种取值都有自己的含义,为了提高代码的可读性,可以将它们定义为 Enum 类型,中文名为枚举。enum colors {RED, GREEN, BLUE};printf("%d\n", RED); // 0printf(&

C 语言Union结构

Union 结构有时需要一种数据结构,不同的场合表示不同的数据类型。比如,如果只用一种数据结构表示水果的“量”,这种结构就需要有时是整数(6个苹果),有时是浮点数(1.5公斤草莓)。C 语言提供了 Union 结构,用来自定义可以灵活变更的数据结构。它内部包含各种属性,但是所有属性共用一块内存,导致

C 语言typedef命令

typedef 命令简介typedef命令用来为某个类型起别名。typedef type name;上面代码中,type代表类型名,name代表别名。typedef unsigned char BYTE;BYTE c = 'z';上面示例中,typedef命令为类型unsign ch