1.3 用C和C++编程

C和C++语言允许直接访问电脑的内存。它们通常用于编写底层系统软件,高性能或者控制严格使用资源的应用。然而,这些需要直接访问内存的应用需要特别注意避免破坏其他数据结构。这本书描述的技术可以在编译时帮助检测潜在的错误但是使用C和C++这样的语言的危险不可能被限制。

除了C和C++语言GNU项目也提供其他高级语言例如GNU通用lisp(gcl),GNU Smalltalk(gst),GNU计划扩展语言(guile)和GNU Java编译器(gcj)。这些语言不允许用户直接访问内存以减少内存访问错误。他们在很多应用中是比C和C++更加安全的选择。

1.4 使用这个手册的约定

这个手册包含很多例子可以使用键盘键入。在终端中输入一个命令像这样显示:

$ command

命令的输出如下:

$ echo "hello world"

hello world

第一个字母是终端的提示符,不需要键入。'$'是这个终端的标准提示符,但是其他的系统可能提示符不一样。

当一个命令例子太长不能再一行中显示并且用引号包裹,它会被分为两行像这样:

$ echo "an example of a line which is too long to fit

in this manual"

当使用键盘输入,输入的命令应该放在一行中。

这本手册的示例的源文件可以在网站上下载或者使用任何文本编辑器编写,例如GNU标准编辑器emacs。编译命令使用的gcc和g++分别是GNU C和C++编译器的名字,cc代表其他编译器。示例程序应该适用于任何版本的GCC。任何只适用于最近版本的GCC命令行选项会使用文本注释。

这些示例程序假设使用的是GNU操作系统,他们的输出与其他系统可能有一些不同。一些不必要的和冗长的系统特定输出信息(例如非常长的系统路径)会被简化。设置环境变量的命令使用标准GNU shell(bash)语法可以在任何版本的Bourne shell上使用。