C语言是什么
c语言是一门编译型语言,而非解释型语言;程序员在编写完程序后,计算机可以将程序转换成二进制指令(即通过编译器转换成机器码),并由CPU执行,CPU会按照顺序依次执行每个指令。
语言发展历程
-
机器语言
-
机器语言是一组由0和1系列组成的指令码,这些指令码,是CPU制作厂商规定出来的,然后发布出来,程序员必须遵守。
-
-
汇编语言
- 汇编语言,用一些容易理解和记忆的缩写单词来代替一些特定的指令,汇编语言和机器自身的编程环境息息相关,推广和移植很难。
-
高级语言
- 高级语言摆脱了计算机硬件的限制,把主要精力放在了程序设计上,不在关注低层的计算机硬件。
-
高级语言要被计算机执行,也需要一个翻译程序将其翻译成机器语言,而翻译工作由编译器或解释器完成。
-
- 高级语言摆脱了计算机硬件的限制,把主要精力放在了程序设计上,不在关注低层的计算机硬件。
C语言通过编译器翻译成机器语言
C语言特点
-
简洁
C语言的语法简单,语句清晰明了,使得程序易于阅读和理解。
-
高效
C语言的执行效率高,可以用于开发需要高性能的应用程序。
-
可移植
C语言可以在不同的硬件平台和操作系统上运行,具有较高的可移植性。
-
模块化
C语言支持函数和结构体等模块化编程方法,使得程序的复杂性得到有效控制。
-
标准化
C语言的语法和标准库已经被ISO和ANSI标准化,具有广泛的应用和兼容性。
C语言的标准
-
C89(C90)标准
-
1989年,美国国家标准协会通过了C语言标准,简称C89
-
1990年,国际标准化组织接收并采纳C89作为国际标准
-
-
C99标准
-
1999年,国际标准化组织和国际电工委员会正式发布了ISO/IEC 9899:1999,简称C99
-
C99引入了许多新特性,例如内联函数,变量声明可以不放在函数开头,支持变长数组
-
-
C11标准
-
2011年,国际标准化组织和国际电工委员会正式发布C语言标准第三版草案N1570,称为ISO/IEC 9899:2011,简称C11
-
C11增强了C语言对C++的兼容性
-
开发工具
开发工具种类繁多,有vscode、Dev-C++、code lite、clion、Qt Creator等
我们这里用的是vscode
1.vscode开发工具
MinGW安装
-
下载安装包 MinGW W64下载链接
-
MinGW-w64 - for 32 and 64 bit Windows - Browse /mingw-w64/mingw-w64-release at SourceForge.net
-
解压压缩包,进入到压缩包的bin目录,不要带中文路径,不要带中文路径
压缩包名字,解压路径,有可能不同,灵活配置 -
打开高级系统设置
- 编辑Path环境变量
- 新建路径
- 重启电脑,为了让环境变量生效(其实大多时候不重启也生效)
- 打开命令行,输入
gcc -v
进行校验,是否配置环境变量成功
vscode安装
- 官网下载地址:Download Visual Studio Code - Mac, Linux, Windows
- 安装说明,基本上一路下一步即可
-
- 可以自己选择安装路径
- 可以选择创建桌面快捷方式
vscode主题选择
- 第一次启动软件,选择自己喜欢的主题
- 设置主题的入口说明
-
- 打开设置
- 输入 theme 后,再在设置页面选择自己喜欢的主题
vscode插件下载
- 拓展插件入口
- 简体中文语言包
- C语言配套插件
C/C++ Compile Run(中文乱码)配置
点击扩展设置
C-cpp-compile-run: C-flags中配置 "-fexec-charset=GBK" 即可
配置文件自动识别编码
配置文件自动保存
2.编写和运行C代码
- 新建文件夹
- 编辑和运行代码
示例代码(直接复制粘贴):
// hello.c
#include <stdio.h>
int main() {
printf("hello world\n");
return 0;
}
设置用户代码块片段
- 设置入口
- 选择C
- 替换配置文件内容
// json { "main function": { "prefix": "ma", "body": [ "#include <stdio.h>", "", "int main() {", " $1", "", " return 0;", "}", "", ], "description": "main function" }, "printf function": { "prefix": "pr", "body": [ "printf(\"$1\\n\");", ], "description": "printf function" } }
- 验证是否能插入自定义的代码块