diff --git a/Chrome_JavaScript/README.md b/Chrome_JavaScript/README.md index 59fdaff3a7e1ac59e038e7669ac9fba0e02ebc4d..6e8bf75382f35055abd958bbc19df79cc2be62cf 100644 --- a/Chrome_JavaScript/README.md +++ b/Chrome_JavaScript/README.md @@ -10,7 +10,7 @@ ### 如何使用,运行环境 -- 打开相应的文件夹,双击 index.html +- 把 Chrome_JavaScript 下载到电脑上,打开相应的文件夹,双击 index.html - 在 Windows 11 浏览器测试运行,建议使用支持 Blink 内核的浏览器打开 diff --git a/README.md b/README.md index 6544d86053a4957b7f78c099ce0c086342f7d900..5fe7c4ecd829210c2cd43370890c31ddf17201f6 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ - [ ] Chrome_JavaScript - 学习笔记,小项目 - [x] PlatfromIO_esp32 - 示波器,学会助手适配 +- [ ] Win11_vscode_c++ - windows11 系统 vscode 编译器 c/c++ 运行环境搭建 - [ ] Small_boat_pid - 小船 pid 控制 ### 如何使用,运行环境 diff --git a/Win11_vscode_c++/.vscode/launch.json b/Win11_vscode_c++/.vscode/launch.json new file mode 100644 index 0000000000000000000000000000000000000000..35171e9831f12502bb12985b5dab3ba60381ebd8 --- /dev/null +++ b/Win11_vscode_c++/.vscode/launch.json @@ -0,0 +1,36 @@ +// // 使用 IntelliSense 了解相关属性。 +// // 悬停以查看现有属性的描述。 +// // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 +{ + "version": "0.2.0", + "configurations": [ + { + "name": "(gdb) 启动", + "type": "cppdbg", + "request": "launch", + // 标签 // 执行程序所在的位置,当前文件夹下的 app.exe, + "program": "${fileDirname}/app.exe", + "args": [], + "stopAtEntry": false, + "cwd": "${fileDirname}", + "environment": [], + // 是否开启外部终端显示 + "externalConsole": false, + "MIMode": "gdb", + // 程序调试工具 gdb 的路径 + "miDebuggerPath": "C:/TDM-GCC-64/bin/gdb.exe", + "setupCommands": [ + { + "description": "为 gdb 启用整齐打印", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "将反汇编风格设置为 Intel", + "text": "-gdb-set disassembly-flavor intel", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file diff --git a/Win11_vscode_c++/.vscode/settings.json b/Win11_vscode_c++/.vscode/settings.json new file mode 100644 index 0000000000000000000000000000000000000000..5af06e3b8e94bb82e0e5520c45766f193b1f6e69 --- /dev/null +++ b/Win11_vscode_c++/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "add.h": "c" + } +} \ No newline at end of file diff --git a/Win11_vscode_c++/.vscode/tasks.json b/Win11_vscode_c++/.vscode/tasks.json new file mode 100644 index 0000000000000000000000000000000000000000..25bd9f805706ef7cc1b99371b2d1c85397660f37 --- /dev/null +++ b/Win11_vscode_c++/.vscode/tasks.json @@ -0,0 +1,32 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: gcc.exe 生成活动文件", + // MinGW or TDM-GCC 编译工具 gcc.exe 路径 + "command": "C:/TDM-GCC-64/bin/gcc.exe", + "args": [ + "-fdiagnostics-color=always", + "-g", + // 添加当前文件夹下 .c 文件,相对于 main.c 文件所在在的文件夹 + "${fileDirname}/*.c", // main.c and max.c 所在的文件夹 + // 添加当前文件夹下 .h 文件,相对于... + "-I${fileDirname}", // max.h 所在的文件夹 + "-o", + // 在 "-o" 后面指定输出文件路径 + // 当前文件夹下生成执行文件 app.exe,标签 + "${fileDirname}/app.exe" + ], + "options": { + "cwd": "${workspaceFolder}" + }, + "problemMatcher": ["$gcc"], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "调试器生成的任务。" + } + ] +} \ No newline at end of file diff --git a/Win11_vscode_c++/README.md b/Win11_vscode_c++/README.md new file mode 100644 index 0000000000000000000000000000000000000000..7dc0dc1d5c9d33aefbc7467e47448f3ab6cc4315 --- /dev/null +++ b/Win11_vscode_c++/README.md @@ -0,0 +1,408 @@ +# Windows 11 系统环境 VS Code 编译器中配置 C/C++ 编译和调试环境 + +## 工程的目录结构和作用 + +```cpp + c/c++ + ├── .vscode + │ ├── tasks.json // build + │ └── launch.json // debug + ├── test_one + │ ├── app.exe // ${fileDirname}/app.exe + │ ├── max.h // -I${fileDirname} + │ ├── max.c // ${fileDirname}/*.c + │ └── main.c // ${fileDirname}/*.c + ├── test_two + │ │── Debug + │ │ └── app.exe // ${fileDirname}/../Debug/app.exe + │ ├── Header + │ │ ├── max.c // "${fileDirname}/../Header/*.c" + │ │ └── max.h // -I${fileDirname}/../Header + │ └── Source + │ └── main.c // ${fileDirname}/*.c + └── README.md +``` + +### 路径表示规则 + + 1. 路径分隔符: + - 正斜杠 `/` 和 反斜杠 `\\` 的区别: + + - 在 Windows 系统中,路径分隔符可以使用正斜杠 `/` 或反斜杠 `\\`。 + + - 正斜杠 `/` 更具跨平台兼容性,推荐在配置文件中统一使用 `/`。 + - 如果使用反斜杠 `\\`,需要进行双重转义,例如:`"${fileDirname}\\..\\Header\\*.c"`。 + + 2. 相对路径符号: + - 当前目录 `./`:表示当前目录。通常可以省略 `./`,因为默认就是当前目录。 + + - 上一层目录 `../`:表示父目录,用于访问当前目录的上级目录。 + +
+ +## 配置说明 + +### `.vscode` 文件夹 + +- **tasks.json**:配置构建任务(build tasks),用于编译文件和环境设置。 +- **launch.json**:配置调试任务(debug tasks),用于启动和调试程序。 + +
+ +### test_one 工程目录结构配置 + +#### `tasks.json`示例配置 + +```json +{ + "version": "2.0.0", + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: gcc.exe 生成活动文件", + // MinGW or TDM-GCC 编译工具 gcc.exe 路径 + "command": "C:/TDM-GCC-64/bin/gcc.exe", + "args": [ + "-fdiagnostics-color=always", + "-g", + // 添加当前文件夹下 .c 文件,相对于 main.c 文件所在在的文件夹 + "${fileDirname}/*.c", // main.c and max.c 所在的文件夹 + // 添加当前文件夹下 .h 文件,相对于... + "-I${fileDirname}", // max.h 所在的文件夹 + "-o", + // 在 "-o" 后面指定输出文件路径 + // 当前文件夹下生成执行文件 app.exe,标签 + "${fileDirname}/app.exe" + ], + "options": { + "cwd": "${workspaceFolder}" + }, + "problemMatcher": ["$gcc"], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "调试器生成的任务。" + } + ] +} +``` + +#### tasks.json 配置说明 + +| 配置项 | 说明 | +|----------------------|-------------------------------------------------------------------| +| `${fileDirname}` | 当前文件所在的目录路径。 | +| `${file}` | 当前文件的路径和名称。 | +| `type` | 指定任务的类型,这里是 `cppbuild`,表示这是一个 C/C++ 构建任务。 | +| `label` | 任务的名称,用于在 VS Code 的任务列表中显示。 | +| `command` | 执行的命令,例如 GCC 编译器路径 (`C:\\TDM-GCC-64\\bin\\gcc.exe`)。 | +| `args` | 传递给命令的参数: | +| `-fdiagnostics-color=always` | 启用彩色诊断输出,识别错误部分并使用高亮的颜色标志。 | +| `-g` | 包含调试信息。 | +| `"*.c"` | 编译当前文件夹中的所有 `.c` 文件。 | +| `-o ${fileDirname}\\app.exe` | 指定输出文件为 `app.exe`。 | +| `options.cwd` | 设置工作目录为当前文件所在的目录。 | +| `problemMatcher` | 用于识别编译错误和警告的模式匹配器,这里使用 `$gcc` 来匹配 GCC 编译器的输出。 | +| `group.kind` | 将任务分组为构建任务,并设置为默认构建任务。 | +| `detail` | 提供额外的描述信息。 | + +
+ +### `launch.json` 配置说明 + +#### 示例配置 + +```json +{ + "version": "0.2.0", + "configurations": [ + { + "name": "(gdb) 启动", + "type": "cppdbg", + "request": "launch", + // 标签 // 执行程序所在的位置,当前文件夹下的 app.exe, + "program": "${fileDirname}/app.exe", + "args": [], + "stopAtEntry": false, + "cwd": "${fileDirname}", + "environment": [], + // 是否开启外部终端显示 + "externalConsole": false, + "MIMode": "gdb", + // 程序调试工具 gdb 的路径 + "miDebuggerPath": "C:/TDM-GCC-64/bin/gdb.exe", + "setupCommands": [ + { + "description": "为 gdb 启用整齐打印", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "将反汇编风格设置为 Intel", + "text": "-gdb-set disassembly-flavor intel", + "ignoreFailures": true + } + ] + } + ] +} +``` + +#### launch.json 配置说明 + +| 配置项 | 说明 | +|----------------------|----------------------------------------------------------| +| `version` | 配置文件的版本号。 | +| `configurations` | 调试配置列表。 | +| `name` | 调试配置的名称,用于在调试菜单中选择。 | +| `type` | 调试器类型,这里是 `cppdbg`,表示使用 C++ 调试器。 | +| `request` | 请求类型,`launch` 表示启动程序进行调试。 | +| `program` | 要调试的可执行文件路径,例如 `${fileDirname}\\app.exe`。 | +| `args` | 传递给程序的参数,目前为空。 | +| `stopAtEntry` | 是否在程序入口点停止,默认为 `false`。 | +| `cwd` | 工作目录,设置为当前文件所在的目录。 | +| `environment` | 环境变量设置,目前为空。 | +| `externalConsole` | 是否使用外部控制台,默认为 `false`。 | +| `MIMode` | 使用的调试器模式,这里是 GDB。 | +| `miDebuggerPath` | GDB 调试器的路径 (`C:\\driveDLL\\mingw64\\bin\\gdb.exe`)。| +| `setupCommands` | 在调试器启动时执行的命令: | +| `-enable-pretty-printing` | 启用 GDB 的整齐打印功能。 | +| `-gdb-set disassembly-flavor intel` | 设置反汇编风格为 Intel 格式。 | + +
+ +### **vs code 终端输出结果** + +#### **test_one** 初级:新手菜鸟,学些语言基础 + +```powershell +PS E:\git_maintenance\esp32_oscilloscope\c> & 'c:\Users\Sword\.vscode\extensions\ms-vscode.cpptools-1.22.11-win32-x64\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-j2nd4xw4.3tq' '--stdout=Microsoft-MIEngine-Out-hw10wc1i.pdv' '--stderr=Microsoft-MIEngine-Error-4aa1ctbm.wau' '--pid=Microsoft-MIEngine-Pid-delbmr5l.elk' '--dbgExe=C:\TDM-GCC-64\bin\gdb.exe' '--interpreter=mi' +Hello World! +a: 10 , b: 5 , max: 10 +PS E:\git_maintenance\esp32_oscilloscope\c> +``` + +#### **test_two** 高级:visual studio 的目录结构 + +```powershell +PS E:\git_maintenance\esp32_oscilloscope\c> & 'c:\Users\Sword\.vscode\extensions\ms-vscode.cpptools-1.22.11-win32-x64\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-sw33o1zs.hl4' '--stdout=Microsoft-MIEngine-Out-vmaxyfv2.w23' '--stderr=Microsoft-MIEngine-Error-gzsyqnef.0cy' '--pid=Microsoft-MIEngine-Pid-et0i3jby.wkv' '--dbgExe=C:\TDM-GCC-64\bin\gdb.exe' '--interpreter=mi' +Hello World! +a: 10 + b: 5 = 15 +PS E:\git_maintenance\esp32_oscilloscope\c> +``` + +
+ +### VS Code 如何编译和调试文件 + +#### 编译文件 + +1. 打开工程:使用 VS Code 打开工程,打开 test_one 文件夹下的 main.c 文件。 + +2. 运行构建任务: + + - type: cppbuild,表示这是一个 C/C++ 构建任务。 + + - command: 使用 GCC 编译器 (C:\\TDM-GCC-64\\bin\\gcc.exe)。 + - args: + - ${workspaceFolder}\\test_one\\*.c: 编译当前工作区下的所有 .c 文件。 + + - -I${workspaceFolder}: 添加头文件搜索路径。 + - -o ${fileDirname}\\app.exe: 生成当前文件夹下的 app.exe 文件。 + +#### 调试文件 + +1. 指定可执行文件:program: ${fileDirname}\\app.exe,指定要调试的可执行文件路径和名称。 + +2. 控制台选项:externalConsole: false,不使用外部控制台。 +3. 调试器路径:miDebuggerPath: 指定 GDB 调试器路径 (C:\\TDM-GCC-64\\bin\\gdb.exe)。 + +#### 如何适配 c++ ? + +1. 在`tasks.json`文件中找到`command:`修改路径编译工具为`../g++.exe` + +2. 工程添加源文件是注意类型: + - 修改前`${fileDirname}/*.c`后缀为`*.c`换成下面例子: + + - 修改后`${fileDirname}/*.cpp`后缀为`*.cpp` + +```json + // ... + // MinGW or TDM-GCC 编译工具 gcc.exe 路径 + // "command": "C:/TDM-GCC-64/bin/gcc.exe", + "command": "C:/TDM-GCC-64/bin/g++.exe", + "args": [ + // ... + "-g", + // 添加当前文件夹下 .c 文件,相对于 main.c 文件所在在的文件夹 + // "${fileDirname}/*.c", // main.c and max.c 所在的文件夹 + "${fileDirname}/*.cpp", + // ... + ], + // ... +``` + +
+ +### 报错后如何查询 + +#### 当遇到报错时,可以参考以下步骤 + +1. 查看终端输出,找到具体的错误信息。 + +2. 检查配置文件:确保 tasks.json 和 launch.json 文件中的路径和参数正确无误。 +3. 检查依赖项:确保所有依赖项已正确安装,并且路径已添加到系统的环境变量中。 + +#### 确保 MinGW 或 TDM-GCC 的安装路径已正确添加到系统的环境变量中 + +- 在 Windows 11 桌面 (Win + R) 弹出运行窗口,输入 cmd 弹出命令行窗口,输入 where gcc 或 where g++ 回车,查找到 MinGW 的路径,是否被误删除或者路径被修改 + +```powershell +Microsoft Windows [版本 10.0.22631.4602] + +(c) Microsoft Corporation。保留所有权利。 + +C:\Users\Sword>where gcc +C:\driveDLL\mingw64\bin\gcc.exe +C:\TDM-GCC-64\bin\gcc.exe + +C:\Users\Sword> +``` + +#### 测试 GCC 和 G++ 编译器是否正常工作 + +- 输入命令 `gcc --version` 判断是否正常工作,下面正常反馈: + +```powershell +Microsoft Windows [版本 10.0.22631.4602] +(c) Microsoft Corporation。保留所有权利。 + +C:\Users\Sword>gcc --version +gcc (x86_64-win32-seh-rev0, Built by MinGW-Builds project) 14.2.0 +Copyright (C) 2024 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +C:\Users\Sword> +``` + +
+ +### ***test_two*** 工程目录结构配置 + +#### `tasks.json` 示例配置 + +```json +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: gcc.exe 生成活动文件", + // MinGW or TDM-GCC 编译工具 gcc.exe 路径 + "command": "C:/TDM-GCC-64/bin/gcc.exe", + "args": [ + "-fdiagnostics-color=always", + "-g", + // 添加当前文件夹下 .c 文件,相对于 main.c 文件所在在的文件夹 + "${fileDirname}/*.c", // main.c 文件所在文件夹 + "${fileDirname}/../Header/*.c", // add.c 文件所在文件夹 + // 添加当前文件夹下 .h 文件,相对于... + "-I${fileDirname}/../Header", // add.h 文件所在文件夹 + "-o", + // 当前文件夹下生成执行文件 app.exe,标签 + "${fileDirname}/../Debug/app.exe"// app.exe 文件所在文件夹 + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "调试器生成的任务。" + } + ], + "version": "2.0.0" +} +``` + +#### `launch.json` 示例配置 + +```json +{ + "version": "0.2.0", + "configurations": [ + { + "name": "(gdb) 启动", + "type": "cppdbg", + "request": "launch", + // 标签 // 执行程序所在的位置,当前文件夹下的 app.exe, + "program": "${fileDirname}/../Debug/app.exe", // 执行文件 app.exe 所在位置 + "args": [], + "stopAtEntry": false, + "cwd": "${fileDirname}", + "environment": [], + // 使用外部控制台 + "externalConsole": false, + "MIMode": "gdb", + // MinGW or TDM-GCC 调试工具 gdb.exe 路径 + "miDebuggerPath": "C:/TDM-GCC-64/bin/gdb.exe", + "setupCommands": [ + { + "description": "为 gdb 启用整齐打印", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "将反汇编风格设置为 Intel", + "text": "-gdb-set disassembly-flavor intel", + "ignoreFailures": true + } + ] + } + ] +} +``` + +## 扩展配置部分 + +### 独立运行的 C/C++ 开发环境 + +- 通过上述配置,VS Code 中的 C/C++ 运行环境可以独立于具体的项目文件夹运行。使用相对路径配置 tasks.json 和 launch.json 文件,确保编译和调试任务可以在不同子工程之间切换而不冲突。 + +### 多个子工程支持 + +- 在同一个工程文件夹下,可以建立多个小工程(如 test_zero、test_one、test_two 等)。每个子工程都可以有自己的编译和调试配置,互不干扰。这使得开发者可以在不同的子工程中进行开发和调试,提高开发效率。 + +```cpp + c/c++ + ├── .vscode + │ ├── tasks.json // build + │ └── launch.json // debug + ├── test_zero + │ ├── app.exe // ${fileDirname}/app.exe + │ ├── max.h // -I${fileDirname} + │ ├── max.c // ${fileDirname}/*.c + │ └── main.c // ${fileDirname}/*.c + ├── test_one + │ ├── app.exe // ${fileDirname}/app.exe + │ ├── max.h // -I${fileDirname} + │ ├── max.c // ${fileDirname}/*.c + │ └── main.c // ${fileDirname}/*.c + ├── test_two + ├── test ... + └── README.md +``` + +#### 其他说明 + +- MinGW 是一个基础的、轻量级的 GCC 工具链,适合简单的 C/C++ 开发需求。 + +- TDM-GCC 是基于 MinGW 的增强版,提供了更多的工具、更好的性能优化和更友好的用户体验,适合需要更多功能和更好支持的开发场景。 + +> 注意:请确保你已经安装了 MinGW 或 TDM-GCC,并且将它们的路径添加到系统的环境变量中。\ +> 推荐使用`TDM-GCC`作为编译调试工具:`https://jmeubank.github.io/tdm-gcc/` diff --git a/Win11_vscode_c++/test_one/app.exe b/Win11_vscode_c++/test_one/app.exe new file mode 100644 index 0000000000000000000000000000000000000000..e544c1bffcfaf367ce8f112433a8930f8bcb2ce8 Binary files /dev/null and b/Win11_vscode_c++/test_one/app.exe differ diff --git a/Win11_vscode_c++/test_one/main.c b/Win11_vscode_c++/test_one/main.c new file mode 100644 index 0000000000000000000000000000000000000000..0c10f12f2030ee1d545884f9354698dfbf007879 --- /dev/null +++ b/Win11_vscode_c++/test_one/main.c @@ -0,0 +1,14 @@ +#include +#include "max.h" // 引用自己的头文件 + +int main() +{ + printf("Hello World!\n"); + + int a = 10; + int b = 5; + int c = Max(a, b); + printf("a: %d , b: %d , max: %d\n", a, b, c); + + return 0; +} diff --git a/Win11_vscode_c++/test_one/max.c b/Win11_vscode_c++/test_one/max.c new file mode 100644 index 0000000000000000000000000000000000000000..28bcd13dc3eb8c1dae4fc2e401d6360dd5c6c01c --- /dev/null +++ b/Win11_vscode_c++/test_one/max.c @@ -0,0 +1,6 @@ +#include "max.h" + +int Max(int a, int b) +{ + return a > b ? a : b; +} diff --git a/Win11_vscode_c++/test_one/max.h b/Win11_vscode_c++/test_one/max.h new file mode 100644 index 0000000000000000000000000000000000000000..03587838c304a1d3318e827ca5d067b0d7475e54 --- /dev/null +++ b/Win11_vscode_c++/test_one/max.h @@ -0,0 +1,6 @@ +#ifndef MAX_H +#define MAX_H + +int Max(int a, int b); + +#endif diff --git a/Win11_vscode_c++/test_two/Debug/app.exe b/Win11_vscode_c++/test_two/Debug/app.exe new file mode 100644 index 0000000000000000000000000000000000000000..42e06822ffbd72584f1c3b23dab586f5e5f32b75 Binary files /dev/null and b/Win11_vscode_c++/test_two/Debug/app.exe differ diff --git a/Win11_vscode_c++/test_two/Header/add.c b/Win11_vscode_c++/test_two/Header/add.c new file mode 100644 index 0000000000000000000000000000000000000000..b10548fe255cffd0f52a0bc37a8b54400c0096db --- /dev/null +++ b/Win11_vscode_c++/test_two/Header/add.c @@ -0,0 +1,6 @@ +#include "add.h" + +int Add(int a, int b) +{ + return (a + b); +} diff --git a/Win11_vscode_c++/test_two/Header/add.h b/Win11_vscode_c++/test_two/Header/add.h new file mode 100644 index 0000000000000000000000000000000000000000..df2490696f593d5656a6daf38030c98b010d0c86 --- /dev/null +++ b/Win11_vscode_c++/test_two/Header/add.h @@ -0,0 +1,6 @@ +#ifndef ADD_H +#define ADD_H + +int Add(int a, int b); + +#endif diff --git a/Win11_vscode_c++/test_two/Source/main.c b/Win11_vscode_c++/test_two/Source/main.c new file mode 100644 index 0000000000000000000000000000000000000000..debb5e190944540c317142f3d338945c4adbc62d --- /dev/null +++ b/Win11_vscode_c++/test_two/Source/main.c @@ -0,0 +1,15 @@ +#include +#include "add.h" + +int main() +{ + printf("Hello World!\n"); + + int a = 10; + int b = 5; + int c = Add(a, b); + + printf("a: %d + b: %d = %d", a, b, c); + + return 0; +} \ No newline at end of file diff --git a/Win11_vscode_c++/test_zero/app.exe b/Win11_vscode_c++/test_zero/app.exe new file mode 100644 index 0000000000000000000000000000000000000000..f003febfbacce9905ff0437898dd9b6e16c97cd3 Binary files /dev/null and b/Win11_vscode_c++/test_zero/app.exe differ diff --git a/Win11_vscode_c++/test_zero/main.c b/Win11_vscode_c++/test_zero/main.c new file mode 100644 index 0000000000000000000000000000000000000000..97e6e3e1967a307b532084dac71f02201e274dbc --- /dev/null +++ b/Win11_vscode_c++/test_zero/main.c @@ -0,0 +1,14 @@ +#include +#include "max.h" // 引用自己的头文件 + +int main() +{ + printf("Hello World!\n"); + + int a = 22; + int b = 33; + int c = Max(a, b); + printf("a: %d , b: %d , max: %d\n", a, b, c); + + return 0; +} diff --git a/Win11_vscode_c++/test_zero/max.c b/Win11_vscode_c++/test_zero/max.c new file mode 100644 index 0000000000000000000000000000000000000000..28bcd13dc3eb8c1dae4fc2e401d6360dd5c6c01c --- /dev/null +++ b/Win11_vscode_c++/test_zero/max.c @@ -0,0 +1,6 @@ +#include "max.h" + +int Max(int a, int b) +{ + return a > b ? a : b; +} diff --git a/Win11_vscode_c++/test_zero/max.h b/Win11_vscode_c++/test_zero/max.h new file mode 100644 index 0000000000000000000000000000000000000000..03587838c304a1d3318e827ca5d067b0d7475e54 --- /dev/null +++ b/Win11_vscode_c++/test_zero/max.h @@ -0,0 +1,6 @@ +#ifndef MAX_H +#define MAX_H + +int Max(int a, int b); + +#endif