C语言笔记 01_介绍&环境设置&编译执行
前言
我是作为一个前端开发者入的编程世界,经过时间的推移,我发现对于编程底层的一些东西一点都不了解,只拘泥于表面,所以想尝试学习c语言然后进一步了解底层机制。
介绍
c 语言是一种通用的、面向过程式的计算机程序设计语言。
最初是由丹尼斯·里奇在贝尔实验室为开发 unix 操作系统而设计的。
在 1978 年,布莱恩·柯林汉(brian kernighan)和丹尼斯·里奇(dennis ritchie)制作了 c 的第一个公开可用的描述,现在被称为 k&r 标准。
当前最新的c语言标准为 c11 ,在它之前的c语言标准为 c99。
unix 操作系统,c编译器,和几乎所有的 unix 应用程序都是用 c 语言编写的。
会让你在前期没有搭建环境的情况下书写c程序
优点
- 结构化语言。
- 它产生高效率的程序。
- 它可以处理底层的活动。
- 它可以在多种计算机平台上编译。
关于 c
c 语言是以 b 语言为基础的,b 语言大概是在 1970 年被引进的。
c 语言标准是于 1988 年由美国国家标准协会制定的。
目前,c 语言是最广泛使用的系统程序设计语言。
大多数先进的软件都是使用 c 语言实现的。
当今最流行的 linux 操作系统和 mysql 都是使用 c 语言编写的。
为什么要使用 c?
c 语言最初是用于系统开发工作,特别是组成操作系统的程序。由于 c 语言所产生的代码运行速度与汇编语言编写的代码运行速度几乎一样,所以采用 c 语言作为系统开发语言。下面列举几个使用 c 的实例:
- 操作系统
- 语言编译器
- 汇编器
- 文本编辑器
- 打印机
- 网络驱动器
- 现代程序
- 数据库
- 语言解释器
- 实体工具
c 程序
一个 c 语言程序,可以是 3 行,也可以是数百万行,它可以写在一个或多个扩展名为 ".c" 的文本文件中,例如,hello.c。
hello.c
#include <stdio.h> int main() { /* 我的第一个 c 程序 */ printf("hello, world! \n"); return 0; }
- 所有的c程序都需要包含一个main() 函数。 代码从 main() 函数开始执行。
- /* ... */ 用于注释说明。
- printf() 用于把圆括号中内容输出到屏幕。printf() 函数在 "stdio.h" 头文件中声明了。
- stdio.h 是一个头文件 (标准输入输出头文件) , #include 是一个预处理命令,用来引入头文件。 当编译器遇到 printf() 函数时,如果没有找到 stdio.h 头文件,会发生编译错误。
- return 0; 语句表示退出程序。
环境设置
文本编辑器
前期可以选一个自己习惯的编辑器,通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。c 程序的源文件通常使用扩展名 ".c"。
c 编译器
c 语言编译器用于把源代码编译成最终的可执行程序。
最常用的免费可用的编译器是 gnu 的 c/c++ 编译器
unix/linux 上的安装
如果您使用的是 linux 或 unix,请在命令行使用下面的命令来检查您的系统上是否安装了 gcc:
$ gcc -v
如果您的计算机上已经安装了 gnu 编译器,则会显示版本信息
如果未安装 gcc,那么请按照 上的详细说明安装 gcc。
mac os 上的安装
基本系统内置了gcc可以在命令行工具通过gcc -v
来查看,如果没有可以使用brew install gcc
命令进行安装,前提是你的电脑上有brew工具,这个一般会自带的。
windows 上的安装
为了在 windows 上安装 gcc,您需要安装 mingw。为了安装 mingw,请访问 mingw 的主页 ,进入 mingw 下载页面,下载最新版本的 mingw 安装程序,命名格式为 mingw-<version>.exe
。
当安装 minwg 时,您至少要安装 gcc-core、gcc-g++、binutils 和 mingw runtime,但是一般情况下都会安装更多其他的项。
添加您安装的 mingw 的 bin 子目录到您的 path 环境变量中,这样您就可以在命令行中通过简单的名称来指定这些工具。
当完成安装时,您可以从 windows 命令行上运行 gcc、g++、ar、ranlib、dlltool 和其他一些 gnu 工具。
编译执行
将上面的
hello.c
文件保存,- 打开命令行工具,进入到保存文件所在的目录。
- 输入
gcc hello.c
,回车,编译。 - 如果代码中没有错误,命令提示符会跳到下一行,并生成 a.out 可执行文件。
- 在命令行输入
./a.out
就会执行程序。 会显示 heelo,world!到页面上。
参考自: