C 指针原理揭秘:基于底层实现机制 (6):C 语言概述 1.4

阅读数:6 2019 年 12 月 11 日 20:19

C指针原理揭秘:基于底层实现机制(6):C语言概述 1.4

(hello,world)

内容简介
全书分为准备篇、基础篇、揭秘篇、实战篇。本书力求从底层实现机制进行解析,同时配合 C/C++ 编程技巧以及某些指针运用技巧,讲解如何提高程序效能,如何避免滥用指针。
准备篇中介绍 C 指针概述、UBUNTU 及开发环境配置、AT&T 汇编简介、编译原理基础;基础篇将对 AT&T 汇编以及 C 指针基础进行介绍;揭秘篇讲述高级 C 指针的实现机制以及 C++ 指针实现机制,同时讲解编程技巧和 C/C++ 指针高级应用;实战篇讲解解释语言指针、TCC 编译实践、垃圾回收等高级 C 指针应用话题。

本节将以经典的“hello,world”程序(是指在计算机屏幕上输出字符串行“hello, world!”的计算机程序,其通常是学习编程语言的第一个示范程序)为例,讲解如何在 Ubuntu 操作系统下编辑、编译以及运行 C 程序。

  1. 编辑 C 代码

编辑在 Ubuntu 系统中运行的 C 语言代码有以下两种方式。

第一种,使用 PuTTY 等 SSH 客户端登录服务器后使用 nano 或 vim 编辑器编写 C 源代码。

nano 编辑器简单易用但编辑效率不高,其界面底部有快捷键提示(如 1.3.2 节中图 1-66 所示),可通过 Ctrl 键来控制,比如 Ctrl+O 键表示保存当前文件,Ctrl+W 键表示进入搜索菜单等,如果要查看完整的操作列表,按 Ctrl+G 键可进入帮助屏幕。vim 功能强大且编辑效率较高,当习惯了 vim 编辑器之后,你将会有一种爱不释手的感觉,会发现它比 Windows 下的 notepad++、codeblocks、VisualStudio 更实用,不少软件工程师在 Windows 下使用 gVim 编写 C 程序。

vim 拥有 3 种模式:第一种模式是插入模式,用于输入文本;第二种模式是编辑模式,用于执行命令,也称为正常模式;第三种模式是命令模式,执行格式为“冒号 命令”。

插入模式并不是默认模式,必须按下“i”来进入插入模式,在屏幕上输入 C 代码。按下 Esc 键将从插入模式转到编辑模式,该模式用于移动和操纵文本,有时会以非常有趣的方式进行。在命令模式下执行保存、查找 / 替换以及配置 vim 等功能。比如需要保存编辑的文本,在正常模式下输入“:”,进入命令模式后,输入“:w 文件名”。

使用 vim 编辑器编写 C 程序 hello.c(如图 1-79 所示),程序完成在屏幕上输出“hello,world!”行的功能,代码如程序 1-1 所示。

C指针原理揭秘:基于底层实现机制(6):C语言概述 1.4

图 1-79 vim 编辑 hello.c
程序 1-1 hello,world
复制代码
#include <stdio.h>
int main(int argc,char *argv[]) {
printf("hello,world!\n");
return 0;
}

第二种,在 Windows 下使用 notepad++ 编辑好 C 代码之后,通过 FileZilla 等 SFTP 客户端上传到 Ubuntu 服务器。

首先,在 Windows 系统中打开 notepad++,输入程序的源代码(如图 1-80 所示)。

C指针原理揭秘:基于底层实现机制(6):C语言概述 1.4

图 1-80 notepad++ 编辑 hello.c

将图 1-80 所示的代码以 hello.c 文件名保存并退出。

然后,上传 C 程序到 Ubuntu 服务器中。打开 FileZilla 的站点管理器,输入 Ubuntu 服务器站点信息(如图 1-81 所示)。

C指针原理揭秘:基于底层实现机制(6):C语言概述 1.4

图 1-81 Ubuntu 服务器站点信息

服务器连接成功之后(如图 1-82 所示),上部是连接信息,方框内左部为 Windows 系统(即客户端本机)磁盘目录,方框内右部为 Ubuntu 系统(需要连接的服务器)磁盘目录。

C指针原理揭秘:基于底层实现机制(6):C语言概述 1.4

图 1-82 连接服务器

将刚才编写的 C 程序源代码文件(所示图 1-83 所示的方框内的左中部)用鼠标拖动到 Ubuntu 服务器的 myhaspl 用户目录(如图 1-83 所示的方框内的右部)中。

文件上传完成后的界面如图 1-84 所示。

  1. 编译 C 程序

通过“gcc -o 执行文件名 源代码文件”的命令格式编译“hello,world”程序:

复制代码
myhaspl@myhaspl:$ cd learn1
myhaspl@myhaspl:~/learn1$ gcc -o hello hello.c

也可以使用 make 程序进行编译。编写如下所示的 makefile 文件:

复制代码
hello:hello.c
gcc hello.c -o hello
clean:
rm hello

C指针原理揭秘:基于底层实现机制(6):C语言概述 1.4

图 1-83 上传文件

C指针原理揭秘:基于底层实现机制(6):C语言概述 1.4

图 1-84 上传成功

执行 make 命令完成编译:

复制代码
myhaspl@myhaspl:~/learn1$ make
gcc hello.c -o hello
  1. 运行 C 程序

直接输入执行文件名,运行程序:

复制代码
myhaspl@myhaspl:~/learn1$ ./hello
hello,world!

C指针原理揭秘:基于底层实现机制(6):C语言概述 1.4

购书地址 https://item.jd.com/12533413.html?dist=jd

评论

发布