This commit is contained in:
许大仙 2024-08-15 11:47:45 +08:00
parent 75338d363f
commit be8b922c65
4 changed files with 109 additions and 15 deletions

View File

@ -33,6 +33,10 @@ export default defineConfig({
markdown: { // markdown 配置 markdown: { // markdown 配置
math: true, math: true,
lineNumbers: true, // 行号显示 lineNumbers: true, // 行号显示
image: {
// 开启图片懒加载
lazyLoading: true
},
}, },
themeConfig: {// 主题设置 themeConfig: {// 主题设置
lastUpdatedText: '上次更新', // 上次更新显示文本 lastUpdatedText: '上次更新', // 上次更新显示文本

View File

@ -1,3 +1,15 @@
:root {
--vp-c-brand-1: #18794e;
--vp-c-brand-2: #299764;
--vp-c-brand-3: #30a46c;
}
.dark {
--vp-c-brand-1: #3dd68c;
--vp-c-brand-2: #30a46c;
--vp-c-brand-3: #298459;
}
.medium-zoom-overlay { .medium-zoom-overlay {
z-index: 20; z-index: 20;
} }
@ -7,10 +19,53 @@
} }
:root { :root {
--vp-home-hero-name-color: transparent; --vp-home-hero-name-color: transparent;
--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe, #41d1ff); --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe, #41d1ff);
/* hero标题渐变色 */
--vp-home-hero-name-color: transparent;
--vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe, #41d1ff);
/*hero logo背景渐变色 */
--vp-home-hero-image-background-image: linear-gradient(-45deg, #bd34fe 50%, #47caff 50%);
--vp-home-hero-image-filter: blur(40px);
} }
h1 {
background: -webkit-linear-gradient(-45deg, #e43498 5%, #5ad7dd 15%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
/* 提醒 */
.note.custom-block.github-alert{
border-color: var(--vp-c-indigo-3);
}
/* 建议 */
.tip.custom-block.github-alert {
border-color: var(--vp-c-brand-1);
}
/* 重要框 */
.important.custom-block.github-alert {
border-color: var(--vp-c-purple-1);
}
/* 警告 */
.warning.custom-block.github-alert {
border-color: var(--vp-c-yellow-1);
}
/* 注意 */
.caution.custom-block.github-alert {
border-color: var(--vp-c-red-1);
}
/* 禁止双指缩放 */ /* 禁止双指缩放 */
body, html { body, html {
touch-action: manipulation; touch-action: manipulation;

View File

@ -574,26 +574,61 @@ int main() { // 定义主函数
## 3.7 C 语言的版本选择 ## 3.7 C 语言的版本选择
* 随着微型(个人)计算机的日益普及,出现了许多 C 语言版本(标准): ### 3.7.1 概述
* 版本 1KR CK&R C 指的是 C 语言的原始版本。1978年C 语言的发明者布莱恩·柯林Brian `K`ernighan和丹尼斯·里奇Dennis `R`itchie合写了一本著名的教材《C 编程语言》The C programming language * C 语言是在 B 语言的基础上改进而来的,目的是为了更好地开发 Unix 操作系统。到了 1973 年Unix 的大部分功能都被 C 语言重写这标志着C语言的初步成熟因为它可以用于大型项目了。
* 后来C语言被多次改进越来越强大为了规范 C 语言的特性和功能,人们发布了多个 C 语言标准。
>[!NOTE] ### 3.7.2 版本 1KR C
>
>由于 C 语言还没有成文的语法标准,这本书就成了公认标准,以两位作者的姓氏首字母作为版本简称 “K&R C”。 * K&R C 指的是 C 语言的原始版本。1978 年C 语言的发明者布莱恩·柯林Brian `K`ernighan和丹尼斯·里奇Dennis `R`itchie合写了一本著名的教材《C 编程语言》The C programming language
>[!NOTE]
>
>由于 C 语言还没有成文的语法标准,这本书就成了公认标准,以两位作者的姓氏首字母作为版本简称 “K&R C”。
### 3.7.3 版本 2ANSI C又称 C89 或 C90
* 到了 80 年代C 语言越来越流行,广泛被业界使用,从大型主机到小型微机,各个厂商群雄并起,推出了多款 C 语言的编译器。这些编译器根据行业和厂商自己的需求进行了各种扩展C 语言进入了春秋战国时代,逐渐演变成一个松散杂乱的大家族。
* 为统一 C 语言版本1989 年美国国家标准协会ANSI制定了一套 C 语言标准并于次年被国际标准化组织ISO通过。它被称为 “ANSI C”也可以按照发布年份称为 “C89 或 C90”。
> [!NOTE]
>
> 目前常用的编译器MSVCMicrosoft Visual C++、GCC、LLVM Clang 等,都能很好地支持 ANSI C 的内容。
### 3.7.4 版本 3C99
* C 语言标准的第一次`大型修订`,发生在 1999 年,增加了许多语言特性,如:双斜杠( `//` )的注释语法,可变长度数组、灵活的数组成员、复数、内联函数和指定的初始值设定项,这个版本称为 C99`是目前最流行的 C 版本`。
> [!NOTE]
>
> 这个时候的 C 语言编译器基本已经成熟,各个组织对 C99 的支持所表现出来的兴趣不同:
>
> * 当 GCC 和其它一些商业编译器支持 C99 的大部分特性的时候。
> * 微软和 Borland 却似乎对此不感兴趣,或者说没有足够的资源和动力来改进编译器。
>
> 最终导致不同的编译器在部分语法上存在差异。典型的例子就是ANSI C 规定,只能用常量表示数组的长度,而 C99 取消了这个限制,数组的长度也可以用变量表示(可变长度数组)。对于 C99 的这个新改动GCC 和 Clang 是支持的,而 MSVC 却不支持。
### 3.7.5 版本 4C11
* 2011 年,标准化组织再一次对 C 语言进行修订增加了_Generic、static_assert 和原子类型限定符,这个版本称为 C11。
> [!NOTE]
>
> * ① 需要强调的是,修订标准的原因并不是因为原标准不能用,而是需要跟进新的技术。
> * ② 支持此标准的主流 C 语言编译器有 GCC、LLVM Clang、Intel C++ Compile 等。
### 3.7.6 版本 5C17
* C11 标准在 2017 年进行了修补,但发布是在 2018 年。新版本只是解决了 C11 的一些缺陷,没有引入任何新功能,这个版本称为 C17。
### 3.7.7 版本 6C23
* 2023 年发布,计划进一步增强安全性,消除实现定义的行为,引入模块化语言概念等新特性,使 C 语言在安全和可靠性方面有重大提高。
* 版本 2ANSI C又称 C89 或 C90C 语言的原始版本非常简单,对很多情况的描述非常模糊,加上 C 语法依然在快速发展,要求将 C 语言标准化的呼声越来越高。1989 年美国国家标准协会ANSI制定了一套 C 语言标准并于次年被国际标准化组织ISO通过。它被称为 “ANSI C”也可以按照发布年份称为 “C89 或 C90”。
* 版本 3C99C 语言标准的第一次`大型修订`,发生在 1999 年,增加了许多语言特性,比如:双斜杠( // )的注释语法,可变长度数组、灵活的数组成员、复数、内联函数和指定的初始值设定项,这个版本称为 C99`是目前最流行的 C 版本`。
* 版本 4C112011 年,标准化组织再一次对 C 语言进行修订增加了_Generic、static_assert 和原子类型限定符。这个版本称为 C11。
> [!NOTE]
>
> 需要强调的是,修订标准的原因并不是因为原标准不能用,而是需要跟进新的技术。
* 版本 5C17C11 标准在 2017 年进行了修补,但发布是在 2018 年。新版本只是解决了 C11 的一些缺陷,没有引入任何新功能。这个版本称为 C17。
* 版本 6C232023 年发布,计划进一步增强安全性,消除实现定义的行为,引入模块化语言概念等新特性,使 C 语言在安全和可靠性方面有重大提高。
* ……

View File

@ -12,7 +12,7 @@
"author": "", "author": "",
"license": "ISC", "license": "ISC",
"devDependencies": { "devDependencies": {
"@types/node": "^22.1.0", "@types/node": "^22.3.0",
"markdown-it-mathjax3": "^4.3.2", "markdown-it-mathjax3": "^4.3.2",
"vitepress": "^1.3.2" "vitepress": "^1.3.2"
}, },