C和C++从零开始系列(一)

今天开始写下一系列C和C++从入门开始的文章。

简单说几句C和C++的关系。C语言早于C++。

C语言

贝尔实验室的Ken Thompson发明了 UNIX,当时有个B语言的。后来D.M.Ritchie加入到这个项目,主要目的就是改进B语言,于是乎C语言诞生了(K&R)。现在很多计算机底层的东西都是C语言实现的。

C++语言

同样来自贝尔实验室的 Bjarne Stroustrup  发明了C++语言,期初只是在C语言的基础上加了面向对象的东西,后来才加上模板,STL等特性。

值得一提的是,贝尔实验室的最初的 cfront 编译器 (第一款C++编译器),是将C++语言翻译成C语言来实现的。

这些历史,权当做八卦来看就行,对新手学习C和C++,我建议大家先从C语言学起,熟悉指针,内存操作等之后,再学C++,最后再看C++11以后的新特性。

好了,言归正传,学习C语言,首先需要有一个能写程序的工具,需要能够编译,运行的工具。如果想了解细节,还需要工具能够调试。

我们先说一下工具。

编译器: 我主要在 Linux 和 windows 平台做开发,所以会用这两个操作系统做编译环境。

编辑器:很多人推荐vim ,鉴于windows平台用户众多,新手对 vim 操作不太顺畅,所以建议使用VS Code, 一个跨平台的开源编辑器。

先说说 windows 环境,在windows上入门,用visual studio 就行。(Visual Studio C++ 的架构师可是 cfront1.0版本的主力作者李普曼,C++Primer的作者)。qt确实跨平台做的好,UI也比较简单,我还是建议用VS做入门。后边用到UI的时候我们再说QT。

我的windows VM 版本是2012,Visual Studio 的版本是2015. 微软提供简单的安装步骤,直接按照提示安装就行。注意,VS2015在选中安装模块时,C++不在默认范围内,所以需要选中C++模块才行。

安装完之后,打开 VS,选择文件,新建项目,语言选择C++,如果能正常出来下边的窗口,说明C++模块安装正常

我的Linux VM 版本是Red Hat 7.7 版本,gcc 版本是4.8.5. RH 安装gcc 时直接在命令行输入 yum install gcc. 这时候会自动下载安装 gcc。刚刚这个命令只会安装 gcc,不会安装 g++,所以如果在后边我们学习进入C++阶段时,g++是必须的,所以需要把g++ 也安装上,输入yum install gcc-c++ 即可安装g++ 。安装完后,输入 gcc -v 和 g++ -v 能看到安装的版本。如图:

好了,接下来,我们要在这两个平台上实现鼎鼎大名的 Hello World 了。

程序非常简单。

1 #include <stdio.h>
2 int main()
3 {
4     printf("Hello World!\n");
5 }

第一行,引入头文件,该头文件中包含程序需要的库函数的函数声明。

第二行,程序入口,可执行程序的程序入口是 main 函数(可以有参数,因为这里不涉及,所以只定义了main函数)

第四行,程序主体,printf,标准输出,函数声明在 stdio.h 文件中能找到,所以需要在第一行引入头文件。输出末尾是 "\n", 标准换行符,程序语句以 ";"结束。

第三行和第五行,用 {} 将程序封装到一个程序块中(block),C和C++程序的函数都是以 {} 封装。这两行封装了main 函数的主体。

windows环境的Visual Studio集成了编译,运行,调试。切记扩展名会影响编译结果,我们使用扩展名为 .c, 而不是VS默认的.cpp. 这样会以C语言来编译。

Linux 下,需要自己写命令来编译。假设我们的源文件叫 main.c, gcc main.c, 默认输出可执行文件 a.out. 我们可以指定输出文件。 gcc main.c -o main, 输出文件为 main.

当我们运行编译出来的结果时,会在控制台输出 Hello World! 并换行。

好了,第一讲先说这么些,后边会慢慢进阶C和C++。

 

 

猜你喜欢

转载自www.cnblogs.com/kylinhu/p/12040886.html