收藏本版 |訂閲

C/C++论坛 今日: 0|主題: 361|排名: 47 

  • C++20新增属性[[no_unique_address]]详解
    有一个古老的c++问题:struct Empty{}; sizeof(Empty); 请问Empty的大小是多少。 很多新手会回答0,但稍有经验的开发者会说出正确答案,大小至少是1字节。 这看起来很奇怪,但这是语言规范决定的:c++要求同一类型的不同实例对象必须拥有完全不同的地址,如果Empty的大小是0,那么想象一下一个元素类型是Empty的数组,这个 ...
    085 萱萱宝儿 发表于 2025-9-8 C/C++论坛
  • C语言之如何定义一个数据类型
    本文介绍了如何设计和定义一个新的数据类型,具体包括建立抽象、建立接口和实现接口三个部分。总结这三步法:从思考“做什么”(抽象)到规定“怎么做才对”(接口),最后才是“怎么做到”(实现),这是编写健壮、清晰、可维护代码的基石。 引言 设计一种数据类型包括设计如何储存该数据类型(属性)和设计一系列管理该 ...
    032 淘桃涛 发表于 2025-9-7 C/C++论坛
  • lwip-autoip
    lwip-2.1.3/src/core/ipv4/autoip.c AutoIP 通常指的是在动态网络环境中,系统自动为其网络接口分配、管理和使用一个IP地址的技术,而无需依赖中心化的服务器(如DHCP服务器)或手动静态配置 需要使用autoip,需要在opt.h头文件当中使能LWIP_AUTOIP这个宏,通常也会使能LWIP_DHCP_AUTOIP_COOP这个宏 /* ---------------- ...
    026 拥菢涳滊 发表于 2025-9-5 C/C++论坛
  • C语言之可变参数列表
    在 C 语言中,可变参数列表(Variable Argument List)通过 stdarg.h 头文件提供的宏和函数来实现。它允许函数接受可变数量的参数,类似于 printf 和 scanf 这样的函数。本文介绍与可变参数列表相关的函数和用法。 核心宏和函数 stdarg.h 提供了以下宏和函数来处理可变参数列表: 宏/函数 作用 va_list 定义一个变 ...
    063 雪山飞鹰 发表于 2025-8-31 C/C++论坛
  • QOJ1087
    题目链接 题解 考虑按位思考。将其转换成 \(x_i=0,1\) 的特殊性质,假设此时的二进制位为第 \(k\) 为,那操作就相当于如果 \(x_i\&2^k=1\) 那就等价于特殊性质 \(x_i=1\),反之为 \(0\)。可以差分在 \(O(n^2)\) 的时间复杂度内求出那些位置被覆盖了,即涂了 \(1\),得出 \(a\) 数组(这时定义不合法限制为 \(x_i=0\) 并且 ...
    095 布丁丁 发表于 2025-8-28 C/C++论坛
  • C语言之文件流常用标准库函数
    本文总结了在C语言中与文件流相关的标准库函数。 文件流常用标准库函数 使用下列文件流相关函数需要包含头文件stdio.h。 函数 作用 注意事项 打开或关闭文件流 fopen 打开文件,返回指向FILE的指针 需要指定模式(如“r”, “w”, “a”等),并处理可能的文件打开错误 fclose 关闭文件流,释放流资源 确保每 ...
    026 梁贵生 发表于 2025-8-26 C/C++论坛
  • 有符号整数的三种编码方式:原码、反码和补码
    在计算机中,原码、反码、补码 是用于表示有符号整数的三种编码方式,主要用于解决二进制数的 正负表示 和 加减运算 问题。它们的核心区别在于 符号位的处理 和 负数的表示方法。 原码(Sign-Magnitude) 定义 最高位(最左边的一位)表示符号: 0 表示正数(如 +5) 1 表示负数(如 -5) 其余位表示数值的绝对值。 ...
    049 顺利成张 发表于 2025-8-26 C/C++论坛
  • C++ 使用分治减小模板递归深度
    起因 C++14 引入 STL 的 make_index_sequence 可以生成一个类型为 std::size_t,0 到 N-1 的编译期序列,我们可以这样使用它: 代码 //利用函数参数推导提取序列 template<std::size_t... Seq> void foo(std::index_sequence<Seq...>) { //使用Seq } //利用模板特化提取序列 template<typename> struct extract_seque ...
    020 阎老头 发表于 2025-8-24 C/C++论坛
  • P5574 [CmdOI2019] 任务分配问题
    题目描述 经典的分 \(k\) 段问题,要求求出分 \(k\) 段后使每段顺序对数量之和最小,求这个最小的值。 思路 首先,我们很好得出这种分段问题的状态转移方程即 $$dp_{i,j}=\min{dp_{k,j-1}+w(k+1,i)}$$ 其中 \(dp_{i,j}\) 表示选到前 \(i\) 个数,分了 \(j\) 段的最小费用,我们可以用 \(O(n^2k)\) 的时间复杂度来实现,显然 ...
    050 宝宝予 发表于 2025-8-20 C/C++论坛
  • 基于 epoll 的协程调度器——零基础深入浅出 C++20 协程
    前言 上一篇《没有调度器的协程不是好协程》谈到协程如何自动运行,然而那个例子里的调度器还是不太自然,考查一下真实场景,挂起的协程一般是在等待异步事件的完成,如果异步事件没完成就轮到自己执行,它其实还是无法继续,相当于一次无效唤醒。所以这一篇准备引入异步事件,看看在真实的场景下,调度器是如何运作的。 文 ...
    085 浅思暖意 发表于 2025-8-18 C/C++论坛
  • 井字棋
    该游戏为c语言写的练手小游戏 大致分为两部分: 菜单显示 游戏部分 主程序 首先加载菜单 用户选择人机或者双人,进入游戏函数 选择退出时,退出程序 选择不合法选项时,再次加载菜单供用户选择 菜单代码 /** * @brief 菜单函数 * * @return 无返回值 * * @code * Menu(); * @endcode */ void Menu() { printf(" ...
    080 砺心书剑 发表于 2025-8-17 C/C++论坛
  • HPX高性能并行编程1:C++标准和标准库
    1 C++、C++ 标准和 C++ 标准库 1.1 C++、C++ 标准和并行编程简史 C++ 基于 Dennis Ritchie 在贝尔实验室工作期间于 1969 年至 1973 年创建的编程语言 C。1973 年,Ritchie 的编译器被用于编译 PDP-11 计算机的 Unix 内核。这是第一次用汇编语言以外的语言编写操作系统。 遗憾的是,直到 1989 年,官方的 C 标准才出台,各 ...
    075 林湘 发表于 2025-8-8 C/C++论坛
  • C/C++与Java混合的JNI编程
    Java与C++混合编程可以实现两种语言的优势结合,C++的程序性能很高且支持强大的系统调用能力,Java则生态丰富且开发效率较高。JNI是Java与C++进行混合编程的关键桥梁,本章将基于JNI技术讲述Java与C++混合编程的方法和技巧。 1. Java与JNI 1.1. 什么是Java? Java是一种高级编程语言,也是一个计算平台(通常指Java虚拟机)。 ...
    0103 还欠我 发表于 2025-8-8 C/C++论坛
  • 24位色深bmp图片显示lcd屏幕上
    设计一个将24位色深的bmp图片显示到lcd屏幕上,可移植,该程序自己写过之后,又经过了ai的完善和修复后,自己又再次添加一些语句注释 /**************************************************************************** * * file name: 2025-07-30_filecopy.c * author : 15515376695@163.com * date : 2025-07- ...
    038 曦曦老爸 发表于 2025-8-7 C/C++论坛
  • const char* 指针作为函数参数也能被修改?
    问题 如下示例程序所示, 首先构建了一个如下所示的Node树,每个节点存有一个数字。程序需要通过node的name返回其数字,即findNodeNumByName,其中name是const char*,表示方法中不会修改其参数。另外这个参数来自于另外一个方法,即findNodeNameByNum,输入数字找到对应的node的name。所以正确的程序输出应该为输入1,输出 ...
    047 狼魄 发表于 2025-8-6 C/C++论坛
  • pkg-config【Linux包管理工具】
    PkgConfig(pkg-config)是一个在 Linux/Unix 开发中管理库的编译和链接参数的工具,能自动生成正确的头文件路径(-I)、库路径(-L)和链接库名称(-l)等标志。以下为详细使用指南: pkg-config命令使用 1. 安装 Debian/Ubuntu: sudo apt-get install pkg-config CentOS/RHEL: sudo yum install pkg-config 2 ...
    026 永远写不完的故事 发表于 2025-8-6 C/C++论坛
  • Qt | 四种方式实现多线程导出数据功能
    前言 在以往的项目开发中,在很多地方用到了多线程。针对不同的业务逻辑,需要使用不同的多线程实现方法,来达到优化项目的目的。本文记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方式。 示例已上传到gittee,地址:https://gitee.com/zbylalalala1/qt_-thread-dem ...
    0109 耘者 发表于 2025-8-6 C/C++论坛
  • 学习笔记:五种基础排序C语言实现
    五种基础排序-升序实现 插入排序 构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 void InsertSort(int buf[], int bufsize) { for (int i = 1; i < bufsize; i++){ int temp = buf; int j = i - 1; // 只移动,不插入 while (j >= 0 && buf[j] > t ...
    0105 水先生 发表于 2025-8-5 C/C++论坛
  • 实现二叉排序树的前中后序遍历
    二叉排序树定义 二叉排序树(Binary Sort Tree),也称为二叉查找树(Binary Search Tree, BST)或有序二叉树,是一种特殊的二叉树数据结构。以下是二叉排序树的一些核心概念: 一个二叉排序树或者是一棵空树,或者是具有以下性质的二叉树: 右子树上所有结点的值均大于它的根结点的值 左子树上所有结点的值均小于它的根结 ...
    055 稻草人在天涯 发表于 2025-8-4 C/C++论坛
  • C语言实现循环队列——始化、入队、出队与完整测试
    队列的基本操作实现 1.队列的概念 🌟 队列(Queue)—— 先进先出的数据结构 队列是一种线性数据结构,遵循 “先进先出”(FIFO, First In First Out) 的原则。如现实中的排队:先来的人先被服务,后来的人排在队尾等待。 🔧 基本操作: 入队(Enqueue):在队尾添加一个新元素。 出队(Dequeue):从队头移除一个元素。 ...
    060 喵小冲 发表于 2025-8-4 C/C++论坛
  • 下一頁 »

    快速發帖

    還可輸入 180 個字符
    您需要登錄後才可以發帖 登錄 | 立即注册

    本版積分規則

    相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

    Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

    在本版发帖返回顶部