avatar
文章
79
标签
21
分类
15
Home
Archives
Categories
Tags
Hymns
搜索
Home
Archives
Categories
Tags

Hymns

059-int赋值给char
发表于2024-11-30|c++
int 直接赋值给 char 会怎么样在 C++中,将一个 int 类型的值直接赋值给一个 char 类型的变量时,可能会发生以下情况: 截断:char 类型通常是 1 字节(8 位),而 int 类型通常是 4 字节(32 位)或更多。因此,当 int 的值超出 char 的表示范围时,只有最低的 8 位会被保留,其余的位会被截断。这可能导致数据丢失或值的改变。 符号扩展:如果 char 是有符号的(signed char),并且 int 的值超出了 char 的正数范围(通常是 -128 到 127),则可能会导致符号扩展问题,导致负值。 未定义行为:如果 int 的值超出了 char 的表示范围,可能会导致未定义行为,具体表现取决于编译器和平台。 例如: 12int largeValue = 300;char smallValue = largeValue; // smallValue 可能会变成 44,因为 300 的最低 8 位是 44 为了避免这些问题,通常建议在赋值前进行显式的类型转换,并确保值在目标类型的范围内: 12int largeValue =...
058-design-patterns-learning
发表于2024-11-28|learning
设计模式网站 refactoringguru 设计模式 图说设计模式 GeeksforGeeks 设计模式 视频 设计模式-阿西拜编程 GitHub design-patterns-for-humans design-patterns-cpp
057-nlohmann_json库的使用
发表于2024-11-22|c++
json.hpp 库下载及安装nlohmann json 的开源项目地址: https://github.com/nlohmann/json#serialization–deserialization 对于我们项目中要使用 nlohmann json 工具,只需要引入 json.hpp 这一个文件,其中包含所有接口函数,正如其文档中所述 json.hpp 文件在 single_include/nlohmann 目录下,我们只需要下载该文件即可: git clone https://github.com/nlohmann/json/blob/develop/single_include/nlohmann/json.hpp 注意:不是 include/nlohmann/json.hpp,而是 single_include/nlohmann/json.hpp,前者要包含整个文件夹,后者只需要包含 json.hpp 文件。 用 json 赋值在使用 nlohmann JSON 库时,如果 JSON...
056-ifndef LINUX
发表于2024-11-21|c++
055-windwos下用Studio编译缺少jsoncpp库怎么办
发表于2024-11-21|c++
在 Windows 下使用 Microsoft Visual Studio 时,如果没有jsoncpp库,你可以通过以下几种方式来解决这个问题: 使用 vcpkg 安装 jsoncpp 库: 首先,确保你已经安装并设置好vcpkg。如果没有,请参考vcpkg 的官方文档进行安装。 打开命令提示符,导航到vcpkg的安装目录,然后运行以下命令来安装jsoncpp: 1vcpkg install jsoncpp 安装完成后,将vcpkg集成到 Visual Studio 中: 1vcpkg integrate install 在你的项目中,确保在项目属性中包含vcpkg的头文件和库路径。 手动下载和编译 jsoncpp 库: 访问jsoncpp 的 GitHub 页面下载源码。 使用 CMake 生成 Visual Studio 项目文件,然后在 Visual Studio 中打开并编译。 将生成的库文件和头文件添加到你的项目中。 使用 NuGet 包管理器: 在 Visual Studio 中,右键点击你的项目,选择“管理 NuGet...
054-Microsoft Visual Studio 怎么编译c++项目, 项目中包含了.sln文件
发表于2024-11-21|c++
在 Microsoft Visual Studio 中编译包含 .sln 文件的 C++ 项目通常需要以下步骤: Microsoft Visual Studio 编译 c++ 项目步骤 1: 打开解决方案 启动 Microsoft Visual Studio。 点击 “文件” -> “打开” -> “项目/解决方案”。 浏览到包含 .sln 文件的目录,选择该文件,然后点击 “打开”。 步骤 2: 设置构建配置 在 Visual Studio 窗口的工具栏中找到 “解决方案配置” 下拉菜单(通常在右上角),选择合适的配置: Debug:用于调试,包含调试信息,优化级别较低。 Release:用于发布,优化级别较高,无调试信息。 根据需要,选择 “平台”(如 x86 或 x64)。 步骤 3: 检查项目设置 在解决方案资源管理器(Solution Explorer)中右键单击项目名称,选择 “属性”。 在弹出的 “属性页” 中检查关键配置: 常规: 确保 输出目录 和 中间目录...
053-localhost和127.0.0.1的关系
发表于2024-11-20|计算机网络
localhost 和 127.0.0.1 都是指向本地主机的地址,但它们在使用上有一些细微的区别: 1. 127.0.0.1 IPv4 地址:127.0.0.1 是一个标准的 IPv4 地址,专门用于指向本地计算机。 环回地址:它是一个环回地址,意味着任何发送到这个地址的数据包都会被返回到本地计算机。 网络接口:通常与名为lo或lo0的网络接口绑定。 2. localhost 主机名:localhost 是一个主机名,通常在系统的/etc/hosts文件中被解析为127.0.0.1。 域名解析:在大多数系统中,localhost 被解析为127.0.0.1,但它也可以被配置为解析为其他地址(如 IPv6 的::1)。 可配置性:用户可以在/etc/hosts文件中更改localhost的解析地址。 3. 关系与区别 默认解析:在大多数情况下,localhost 默认解析为127.0.0.1,但它是通过域名解析系统(如/etc/hosts文件)实现的。 IPv6 支持:localhost 也可以解析为 IPv6 地址::1,而127.0.0.1仅限于...
052-进程间通信
发表于2024-11-19|操作系统
进程间通信(Inter-Process Communication, IPC) 进程间通信有哪些方式 共享内存 管道 消息队列 信号量 套接字 进程间通信(IPC)的连接可以通过多种机制建立,每种机制都有其特定的用途和实现方式。以下是几种常见的 IPC 机制及其连接建立方式: 1. 管道(Pipe) 匿名管道 只能在父子进程之间使用 通过pipe()系统调用创建 创建后返回两个文件描述符:一个用于读,一个用于写 12345int pipefd[2];if (pipe(pipefd) == -1) { perror("pipe"); exit(EXIT_FAILURE);} 命名管道(FIFO) 可以在无亲缘关系的进程间使用 通过mkfifo()创建一个特殊文件 进程通过打开这个文件进行读写 1mkfifo("/tmp/myfifo", 0666); 2....
051-使用cmake编译项目
发表于2024-11-19|c++
要编译一个已有 CMakeLists.txt 文件的 C++ 项目,你需要按照以下步骤进行操作: CMake 和 make1. 确保安装了 CMake 和编译工具首先,确保你的系统已经安装了 CMake 和适当的 C++ 编译工具。具体取决于你的操作系统,下面是一些常见的安装方式: Windows:安装 CMake 和 Visual Studio 或 MinGW(如果你使用的是命令行编译器)。 Linux/Mac:可以通过包管理器安装 CMake 和 g++ 编译器: Linux: sudo apt-get install cmake g++ macOS: brew install cmake(如果使用 Homebrew) 2. 创建构建目录通常我们不直接在项目的根目录中进行构建,而是创建一个单独的构建目录,这样可以保持项目目录的整洁。 在项目的根目录下,执行以下命令: 12mkdir buildcd build 3. 运行 CMake 配置项目在构建目录中,使用 cmake 命令来配置项目。这会生成平台特定的构建文件(如 Makefile 或...
050-线程与进程
发表于2024-11-19|操作系统
进程是操作系统对一个正在运行的程序的一种抽象。线程是进程中的一个执行单元。 为什么不用类似于 fork 的方式创建线程fork 创建进程的特点 资源复制 123456pid_t pid = fork();// fork会复制:// - 内存空间// - 文件描述符// - 程序计数器// 等所有资源 开销大 需要复制整个进程地址空间 创建新的页表 复制文件描述符表 线程的设计目的 轻量级任务切换 123456789pthread_t thread;pthread_create(&thread, NULL, thread_func, NULL);// 线程共享:// - 代码段// - 堆空间// - 文件描述符// 仅独立:// - 栈空间// - 寄存器 资源共享优势 线程间通信成本低 上下文切换快 内存占用小 如果用 fork 方式创建线程会带来的问题 性能问题 123创建100个线程:- 当前方式:只需要分配100个栈空间-...
1234…8
avatar
Hymns
文章
79
标签
21
分类
15
Follow Me
公告
This is my Blog
最新文章
079-ClouDNSandCloudflare_mailtransfer2025-03-20
078-vscode搜索最大显示19999+2025-03-06
077-cpp类成员变量的声明顺序2025-02-28
076-格式化字符串参数2025-02-26
075-排序算法2025-02-12
分类
  • Linux4
  • c++25
  • docker1
  • git3
  • learning5
  • vscode1
    • cursor1
  • 博客4
标签
现代c++ 计算机网络 域名 博客 c++11 图床 Linux 编译 工具 git c++17 rss debug wsl2 vscode rust docker c++ 操作系统 设计模式 开箱即用
归档
  • 三月 2025 2
  • 二月 2025 6
  • 一月 2025 4
  • 十二月 2024 8
  • 十一月 2024 35
  • 十月 2024 11
  • 九月 2024 2
  • 六月 2024 11
网站信息
文章数目 :
79
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2024 - 2025 By Hymns
框架 Hexo|主题 Butterfly
搜索
数据加载中