OPC-UA open62541 C++测试代码

news2024/9/21 14:33:02

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。


        这是之前写的open62541测试代码(意思是我现在也不太看得懂,但是程序能正常运行)。

        环境为visual studio 2022,C++控制台项目。可移植到unix/linux。

目录

项目概况

程序概况

源代码

兼容性


项目概况

        上面方框里面是编译好的open62541,下面方框是main函数所在文件。

        附加的库:

程序概况

        程序自己写了一个server,又写了一个client,自己搞自己,输出如下(注意程序首先启动server,获得一部分输出,然后要敲一下回车才会启动client,输出信息然后程序自动结束):

Hello World!
[ 13940][2024-05-11 08:48:47.155 (UTC+0800)] warn/server        AccessControl: Unconfigured AccessControl. Users have all permissions.
[ 13940][2024-05-11 08:48:47.170 (UTC+0800)] info/server        AccessControl: Anonymous login is enabled
[ 13940][2024-05-11 08:48:47.170 (UTC+0800)] info/server        AccessControl: x509 certificate user authentication is enabled
[ 13940][2024-05-11 08:48:47.170 (UTC+0800)] warn/server        Username/Password Authentication configured, but no encrypting SecurityPolicy. This can leak credentials on the network.
[ 13940][2024-05-11 08:48:47.170 (UTC+0800)] warn/userland      AcceptAll Certificate Verification. Any remote certificate will be accepted.
ns: 1 S[the NodeId]
ns: 1 S[the NodeI]
ns: 0 N[50510]
ns: 0 N[50218]
ns: 0 N[50219]
[ 13940][2024-05-11 08:48:47.170 (UTC+0800)] info/network       TCP network layer listening on opc.tcp://mac-2023-11-09:5000/

[ 22336][2024-05-11 08:48:49.329 (UTC+0800)] warn/userland      AcceptAll Certificate Verification. Any remote certificate will be accepted.
[ 13940][2024-05-11 08:48:49.329 (UTC+0800)] info/network       Connection 512 | New connection over TCP from ::1
[ 13940][2024-05-11 08:48:49.329 (UTC+0800)] info/channel       Connection 512 | SecureChannel 1 | SecureChannel opened with SecurityPolicy http://opcfoundation.org/UA/SecurityPolicy#None and a revised lifetime of 600.00s
[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/channel       Connection 496 | SecureChannel 1 | SecureChannel opened with SecurityPolicy http://opcfoundation.org/UA/SecurityPolicy#None and a revised lifetime of 600.00s
[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/client        Client Status: ChannelState: Open, SessionState: Closed, ConnectStatus: Good
[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/client        Selected endpoint 0 in URL opc.tcp://localhost:5000 with SecurityMode None and SecurityPolicy http://opcfoundation.org/UA/SecurityPolicy#None
[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/client        Selected UserTokenPolicy open62541-anonymous-policy with UserTokenType Anonymous and SecurityPolicy http://opcfoundation.org/UA/SecurityPolicy#None
[ 13940][2024-05-11 08:48:49.344 (UTC+0800)] info/session       SecureChannel 1 | Session "" | Session created
[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/client        Client Status: ChannelState: Open, SessionState: Created, ConnectStatus: Good
[ 13940][2024-05-11 08:48:49.344 (UTC+0800)] info/session       SecureChannel 1 | Session "" | ActivateSession: Session activated
[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/client        Client Status: ChannelState: Open, SessionState: Activated, ConnectStatus: Good
连接成功
[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/userland      date is: 11-5-2024 0:48:49.344

[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/userland      Variable Value is: 27

[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/userland      New Variable Value is: 100

[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/userland      未能获取 the NodeId2

[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/userland      readVariable 出错

[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/userland      未能获取 the NodeId3

[ 22336][2024-05-11 08:48:49.344 (UTC+0800)] info/userland      readVariable 出错(符合预期)


i   j   关系 类型 BROWSE NAME      DISPLAY NAME     NODEID           typeDefinition
  0   1 组织 对象 Server           Server           ns: 0 N[2253]    ns: 0 N[2004]    : 不是变量
      0   1 属性 变量 Auditing         Auditing         ns: 0 N[2994]    ns: 0 N[68]      : ns: 0 N[1] [0]
      0   2 属性 变量 ServiceLevel     ServiceLevel     ns: 0 N[2267]    ns: 0 N[68]      : ns: 0 N[3] [255]
      0   3 属性 变量 NamespaceArray   NamespaceArray   ns: 0 N[2255]    ns: 0 N[68]      : ns: 0 N[12]数组2 [http://opcfoundation.org/UA/]
      0   4 属性 变量 ServerArray      ServerArray      ns: 0 N[2254]    ns: 0 N[68]      : ns: 0 N[12]数组1 [urn:open62541.server.application]
      0   5 成员 对象 ServerRedundancy ServerRedundancy ns: 0 N[2296]    ns: 0 N[2034]    : 不是变量
          0   1 属性 变量 RedundancySupport RedundancySupport ns: 0 N[3709]    ns: 0 N[68]      : ns: 0 N[6] [0]
      0   6 成员 对象 VendorServerInfo VendorServerInfo ns: 0 N[2295]    ns: 0 N[2033]    : 不是变量
      0   7 成员 对象 ServerDiagnostics ServerDiagnostics ns: 0 N[2274]    ns: 0 N[2020]    : 不是变量
          0   1 属性 变量 EnabledFlag      EnabledFlag      ns: 0 N[2294]    ns: 0 N[68]      : ns: 0 N[1] [0]
      0   8 成员 对象 ServerCapabilities ServerCapabilities ns: 0 N[2268]    ns: 0 N[2013]    : 不是变量
          0   1 属性 变量 SoftwareCertificates SoftwareCertificates ns: 0 N[3704]    ns: 0 N[68]      : ns: 0 N[22]多维1数组1 [未获取 UA_TYPES_EXTENSIONOBJECT]
          0   2 属性 变量 MaxHistoryContinuationPoints MaxHistoryContinuationPoints ns: 0 N[2737]    ns: 0 N[68]      : ns: 0 N[5] [0]
          0   3 属性 变量 MaxQueryContinuationPoints MaxQueryContinuationPoints ns: 0 N[2736]    ns: 0 N[68]      : ns: 0 N[5] [0]
          0   4 属性 变量 MaxBrowseContinuationPoints MaxBrowseContinuationPoints ns: 0 N[2735]    ns: 0 N[68]      : ns: 0 N[5] [5]
          0   5 属性 变量 MinSupportedSampleRate MinSupportedSampleRate ns: 0 N[2272]    ns: 0 N[68]      : ns: 0 N[11] [50.000000]
          0   6 属性 变量 LocaleIdArray    LocaleIdArray    ns: 0 N[2271]    ns: 0 N[68]      : ns: 0 N[12]数组1 [en]
          0   7 属性 变量 ServerProfileArray ServerProfileArray ns: 0 N[2269]    ns: 0 N[68]      : ns: 0 N[12]数组3 [http://opcfoundation.org/UA-Profile/Server/MicroEmbeddedDevice]
          0   8 成员 对象 AggregateFunctions AggregateFunctions ns: 0 N[2997]    ns: 0 N[61]      : 不是变量
          0   9 成员 对象 ModellingRules   ModellingRules   ns: 0 N[2996]    ns: 0 N[61]      : 不是变量
              0   1 成员 对象 ExposesItsArray  ExposesItsArray  ns: 0 N[83]      ns: 0 N[77]      : 不是变量
                  0   1 属性 变量 NamingRule       NamingRule       ns: 0 N[114]     ns: 0 N[68]      : ns: 0 N[6] [3]
              0   2 成员 对象 Mandatory        Mandatory        ns: 0 N[78]      ns: 0 N[77]      : 不是变量
                  0   1 属性 变量 NamingRule       NamingRule       ns: 0 N[112]     ns: 0 N[68]      : ns: 0 N[6] [1]
              0   3 成员 对象 MandatoryPlaceholder MandatoryPlaceholder ns: 0 N[11510]   ns: 0 N[77]      : 不是变量
                  0   1 属性 变量 NamingRule       NamingRule       ns: 0 N[11511]   ns: 0 N[68]      : ns: 0 N[6] [1]
              0   4 成员 对象 Optional         Optional         ns: 0 N[80]      ns: 0 N[77]      : 不是变量
                  0   1 属性 变量 NamingRule       NamingRule       ns: 0 N[113]     ns: 0 N[68]      : ns: 0 N[6] [2]
              0   5 成员 对象 OptionalPlaceholder OptionalPlaceholder ns: 0 N[11508]   ns: 0 N[77]      : 不是变量
                  0   1 属性 变量 NamingRule       NamingRule       ns: 0 N[11509]   ns: 0 N[68]      : ns: 0 N[6] [2]
          0  10 成员 对象 OperationLimits  OperationLimits  ns: 0 N[11704]   ns: 0 N[11564]   : 不是变量
              0   1 属性 变量 MaxMonitoredItemsPerCall MaxMonitoredItemsPerCall ns: 0 N[11714]   ns: 0 N[68]      : ns: 0 N[7] [0]
              0   2 属性 变量 MaxNodesPerNodeManagement MaxNodesPerNodeManagement ns: 0 N[11713]   ns: 0 N[68]      : ns: 0 N[7] [0]
              0   3 属性 变量 MaxNodesPerTranslateBrowsePathsToNodeIds MaxNodesPerTranslateBrowsePathsToNodeIds ns: 0 N[11712]   ns: 0 N[68]      : ns: 0 N[7] [0]
              0   4 属性 变量 MaxNodesPerRegisterNodes MaxNodesPerRegisterNodes ns: 0 N[11711]   ns: 0 N[68]      : ns: 0 N[7] [0]
              0   5 属性 变量 MaxNodesPerBrowse MaxNodesPerBrowse ns: 0 N[11710]   ns: 0 N[68]      : ns: 0 N[7] [0]
              0   6 属性 变量 MaxNodesPerMethodCall MaxNodesPerMethodCall ns: 0 N[11709]   ns: 0 N[68]      : ns: 0 N[7] [0]
              0   7 属性 变量 MaxNodesPerWrite MaxNodesPerWrite ns: 0 N[11707]   ns: 0 N[68]      : ns: 0 N[7] [0]
              0   8 属性 变量 MaxNodesPerRead  MaxNodesPerRead  ns: 0 N[11705]   ns: 0 N[68]      : ns: 0 N[7] [0]
      0   9 成员 变量 ServerStatus     ServerStatus     ns: 0 N[2256]    ns: 0 N[2138]    : ns: 0 N[862]*******************************未识别的值类型 []
          0   1 成员 变量 ShutdownReason   ShutdownReason   ns: 0 N[2993]    ns: 0 N[63]      : ns: 0 N[21] [未获取 UA_TYPES_LOCALIZEDTEXT]
          0   2 成员 变量 SecondsTillShutdown SecondsTillShutdown ns: 0 N[2992]    ns: 0 N[63]      : ns: 0 N[7] [0]
          0   3 成员 变量 BuildInfo        BuildInfo        ns: 0 N[2260]    ns: 0 N[3051]    : ns: 0 N[338]*******************************未识别的值类型 []
              0   1 成员 变量 BuildDate        BuildDate        ns: 0 N[2266]    ns: 0 N[63]      : ns: 0 N[13] [2024年5月11日 0:48:47]
              0   2 成员 变量 BuildNumber      BuildNumber      ns: 0 N[2265]    ns: 0 N[63]      : ns: 0 N[12] [May  9 2024 15:23:14]
              0   3 成员 变量 SoftwareVersion  SoftwareVersion  ns: 0 N[2264]    ns: 0 N[63]      : ns: 0 N[12] [1.2.2-unknown]
              0   4 成员 变量 ManufacturerName ManufacturerName ns: 0 N[2263]    ns: 0 N[63]      : ns: 0 N[12] [open62541]
              0   5 成员 变量 ProductUri       ProductUri       ns: 0 N[2262]    ns: 0 N[63]      : ns: 0 N[12] [http://open62541.org]
              0   6 成员 变量 ProductName      ProductName      ns: 0 N[2261]    ns: 0 N[63]      : ns: 0 N[12] [open62541 OPC UA Server]
          0   4 成员 变量 State            State            ns: 0 N[2259]    ns: 0 N[63]      : ns: 0 N[6] [0]
          0   5 成员 变量 CurrentTime      CurrentTime      ns: 0 N[2258]    ns: 0 N[63]      : ns: 0 N[13] [2024年5月11日 0:48:49]
          0   6 成员 变量 StartTime        StartTime        ns: 0 N[2257]    ns: 0 N[63]      : ns: 0 N[13] [2024年5月11日 0:48:47]
      0  10 成员 方法 GetMonitoredItems GetMonitoredItems ns: 0 N[11492]   ns: 0 N[0]       : 不是变量
          0   0 属性 变量 OutputArguments  OutputArguments  ns: 0 N[11494]   ns: 0 N[68]      : ns: 0 N[22]数组2 [未获取 UA_TYPES_EXTENSIONOBJECT]
          0   1 属性 变量 InputArguments   InputArguments   ns: 0 N[11493]   ns: 0 N[68]      : ns: 0 N[22]数组1 [未获取 UA_TYPES_EXTENSIONOBJECT]
  0   2 组织 变量 browseName       displayName      ns: 1 S[the NodeId] ns: 0 N[63]      : ns: 0 N[6] [100]
  0   3 组织 对象 browseName       displayName      ns: 1 S[the NodeI] ns: 0 N[58]      : 不是变量
      0   1 组织 变量 a                displayName      ns: 0 N[50510]   ns: 0 N[63]      : ns: 0 N[6] [99]
      0   2 组织 对象 obj              displayName      ns: 0 N[50218]   ns: 0 N[58]      : 不是变量
          0   1 成员 变量 b                displayName      ns: 0 N[50219]   ns: 0 N[63]      : ns: 0 N[6] [29]
  0   4 组织 对象 Student (Manual) Student (Manual) ns: 0 N[50220]   ns: 0 N[58]      : 不是变量
      0   1 成员 变量 StudentName      Name             ns: 0 N[50221]   ns: 0 N[63]      : ns: 0 N[12] [Xiao Ming]
      0   2 成员 变量 Gender           Gender           ns: 0 N[50222]   ns: 0 N[63]      : ns: 0 N[12] [Male]
      0   3 成员 变量 Age              Age              ns: 0 N[50223]   ns: 0 N[63]      : ns: 0 N[3] [16]
      0   4 成员 变量 Height (cm)      Height (cm)      ns: 0 N[50224]   ns: 0 N[63]      : ns: 0 N[5] [170]
      0   5 成员 变量 Weight (kg)      Weight (kg)      ns: 0 N[50225]   ns: 0 N[63]      : ns: 0 N[5] [60]

i   j   关系 类型 BROWSE NAME      DISPLAY NAME     NODEID           typeDefinition

i   j   关系 类型 BROWSE NAME      DISPLAY NAME     NODEID           typeDefinition
  0   1 组织 变量 a                displayName      ns: 0 N[50510]   ns: 0 N[63]      : ns: 0 N[6] [99]
  0   2 组织 对象 obj              displayName      ns: 0 N[50218]   ns: 0 N[58]      : 不是变量
      0   1 成员 变量 b                displayName      ns: 0 N[50219]   ns: 0 N[63]      : ns: 0 N[6] [29]
[ 13940][2024-05-11 08:48:49.422 (UTC+0800)] info/session       SecureChannel 1 | Session "" | Closing the Session
[ 22336][2024-05-11 08:48:49.422 (UTC+0800)] info/client        Client Status: ChannelState: Closed, SessionState: Closed, ConnectStatus: Good
[ 13940][2024-05-11 08:48:49.422 (UTC+0800)] info/channel       Connection 512 | SecureChannel 1 | CloseSecureChannel
[ 13940][2024-05-11 08:48:49.422 (UTC+0800)] info/network       Connection 512 | Closed

x64\Debug\CppOPCDemo.exe (进程 5096)已退出,代码为 0。
按任意键关闭此窗口. . .

源代码

        打个包算了:

【免费】OPC-UAopen62541C++测试代码资源-CSDN文库

        注意里面没有sln文件,直接打开项目文件即可。里面还有个小小的readme.txt:

Open62541是开源OPC UA库
可以使用编译好的lib,也可以使用.c文件
.c文件修改了日志输出

服务端默认端口号4840,如果启动报错,一般是端口号被占用

         我应该是也用OPC-UA测试工具测试过的。毕竟自己搞自己有点不放心。

兼容性

        这些代码我也移植到ubuntu上了,除了头文件位置之外,主要是char *和char const*的不兼容,visual studio没那么严格。


(这里是结束)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1680173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑版的学浪课程下载方法

想在你的电脑上无限制地访问你最爱的学浪课程吗?现在,让我揭秘如何用几个简单步骤,轻松下载任何学浪课程到你的电脑,让学习不再受时间和地点的限制,随时随地都是你的课堂。 下载学浪视频的工具,我已经打包…

计算机网络实验3:路由器安全防控配置

实验目的和要求 理解标准IP访问控制列表的原理及功能理解CHAP、DHCP配置原理了解家用式无线路由配置方法实验项目内容 标准IP访问控制列表配置 CHAP验证路由器上配置DHCP网络地址转换NAT配置无线路由实现实验环境 1. 硬件:PC机; 2. 软件:W…

SQL复习

SQL基础 包括: 数据查询:SELECT数据定义语言:CREATE、ALTER和DROP数据操纵语言:INSERT、UPDATE、DELETE数据控制语言:GRANT、REVOKE 特点: 综合统一高度非过程化面向集合既是独立的也是嵌入式语言 三…

垃圾分类管理系统java项目

文章目录 垃圾分类管理系统一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目(9.9¥带走) 垃圾分类管理系统 一、项目演示 垃圾分类管理系统 二、项目介绍 系统角色:管理员、用户 1、登录、注册功能…

【Arduino】Free RTOS系统

目录 1、任务创建 2、任务删除 3、延迟函数 4、示例: ESP32的SDK包中内置了FreeRTOS,在FreeRTOS中,线程(Thread)和任务(Task)的概念是相同的。每个任务就是一个线程,有着自己的一…

Go框架三件套:Gorm的基本操作

1.概述 这里的Go框架三件套是指 Web、RPC、ORM框架,具体如下: Gorm框架 gorm框架是一个已经迭代了10年的功能强大的ORM框架,在字节内部被广泛使用并且拥有非常丰富的开源扩展。 Kitex框架 Kitex是字节内部的Golang微服务RPC框架,具有高性能…

IDEA不能创建新项目和新模块

问题: IDEA不管是创建新项目还是新模块都创建不成功,会报如下图错误 解决方案: 在电脑设置里搜索 “防火墙和网络保护” ,打开如下图所示 找到你所安装的IDEA,更改设置,选中IDEA 最后,确定&am…

行为驱动开源免费接口测试框架:karate

什么是行为驱动测试: 行为驱动测试(Behavior-Driven Testing,简称 BDT)是一种测试方法,旨在通过描述系统行为和功能来编写测试用例。BDT的重点是从用户的角度出发,描述系统应该如何行为,而不是专…

机器学习笔记 KAN网络架构简述(Kolmogorov-Arnold Networks)

一、简述 在最近的研究中,出现了号称传统多层感知器 (MLP) 的突破性替代方案,重塑了人工神经网络 (ANN) 的格局。这种创新架构被称为柯尔莫哥洛夫-阿诺德网络 (KAN),它提出了一种受柯尔莫哥洛夫-阿诺德表示定理启发的函数逼近的方法。 与 MLP 不同,MLP 依赖于各个节…

嗨动PDF编辑器怎么对pdf修改?分享修改步骤

嗨动PDF编辑器怎么对pdf修改?PDF(Portable Document Format)格式因其跨平台、不易修改的特性,在日常工作和学习中得到了广泛的应用。然而,当需要对PDF文件进行修改时,许多人可能会感到困扰。此时&#xff0…

付费解锁隐藏动力和续航,订阅制又被特斯拉玩出花了

我们知道,「订阅制」早已成互联网领域各路大厂玩烂的操作。 上到程序订阅付费使用(例如 Offics、Adobe),下到各类功能服务订阅(如影视会员、网盘会员等)。 甚至于某东、某宝等网购平台也整出了 VIP 订阅服…

2024五月母亲节嘉年华活动方案

2024以花之名 致谢母亲簪花趣味亲子五月母亲节嘉年华活动方案-43P 活动策划信息: 方案页码:43页 文件格式:PPT 方案简介: 岁月温柔治愈 母爱闪闪发光 一年一度的PY圈孝子孝女大赛即将到来 本次母亲节,“以花之名…

三分钟快速上手SpringSecurity框架

导入依赖框架 web 框架(spring-boot-starter-web) <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> springSecurity 框架(spring-boot-starter-security) <de…

MySQL基础使用指南

难度就是价值所在。大家好&#xff0c;今天给大家分享一下关于MySQL的基础使用&#xff0c;MySQL 是一个流行的关系型数据库管理系统&#xff0c;被广泛应用于各种类型的应用程序开发中。本文中将介绍 MySQL 的基础使用方法&#xff0c;包括创建数据库、创建表格以及进行增删改…

景源畅信数字:做抖音切片的方法分享?

一提起抖音切片&#xff0c;很多人可能会想到那些让人眼前一亮的短视频。它们通常短小精悍&#xff0c;内容丰富多彩&#xff0c;能够迅速吸引观众的注意力。但是&#xff0c;如何制作出这样的切片视频呢?这就是我们今天要探讨的问题。 一、选材与剪辑 制作抖音切片&#xff0…

判断上三角矩阵 分数 15

题目展示&#xff1a; 代码展示&#xff1a; 点这里&#xff0c;输入题目名称即可检索更多题目答案 ​#include<stdio.h>int main() {//T-tint t 0;scanf("%d",&t);while(t--)//循环t次&#xff0c;处理t个矩阵{int n 0;scanf("%d",&n);…

自学VBA 设置单元格文字格式 笔记

一.设定对应单元格对应需要显示的格式 Cells(1, 1).Font.Size 18 字体大小 Cells(1, 2).Font.Color RGB(255, 0, 0) 字体颜色 Cells(1, 3).Font.Name "黑体" 字体类型 Cells(1, 4).Font.Italic True 字体斜体 Cells(1, 5).Font.FontStyle "BOLD"…

创新指南 | 企业AI战略 实施方案探讨(上):如何构建基于AI的新商业模型和业务场景

2023年以ChatGPT为代表的生成式AI推出以来&#xff0c;从投资界到企业界都掀起了一股热潮。那么从企业角度来看&#xff0c;生成式AI到底能为业务带来哪些增量呢&#xff1f;企业如何构建基于AI的商业模式并进行落地实施呢&#xff1f; 企业AI战略 实施方案探讨分为上下两篇&am…

开发常用的实体属性转化API,copyProperties方法的用途,需要注意的点。

目录 1. 摘要 2. 传统 set 方法转化属性 3. cn.hutool.core.bean.BeanUtil 包下 copyProperties 方法 3.1 转化对象属性多于原始对象属性 3.2 转化对象属性少于原始对象属性 3.3 转化对象属性与原始对象属性存在差 4. org.springframework.beans.BeanUtils 包下 copyPro…

几个排序器的verilog及其资源占用、延时分析

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 前言 因为课题需要&#xff0c;调研了几个快速排序方法&#xff0c;并手写或者改进了若干待测试对象&#xff0c;包括记分板型冒泡排序&#xff08;这个是别人的&#xff09…