找回密码
 立即注册
楼主: LeoringYang

YXRA-SDK课程跟进回复量很少,不清楚原因 | 先实现一个 C23 / C++23 的优秀子集

[复制链接]

27

主题

152

回帖

1087

积分

金牌会员

积分
1087
发表于 2026-8-16 20:56:12 | 显示全部楼层
Leorin*** 发表于 2026-8-14 10:18
能否告知用户群体的痛点是什么?我应该算是个初学者,头疼的是初始化。YXRA-SDK着重解决了这个问题。
我估 ...

讨厌Java
回复

使用道具 举报 送花

865

主题

1万

回帖

2万

积分

管理员

积分
25122
发表于 2026-8-16 20:58:09 | 显示全部楼层
YXRA-SDK教程||持续更新中 - 综合讨论 国芯人工智能技术交流网站 - AI32位8051交流社区

第一课:YXRA-SDK集成工具安装


YXRA-SDK集成开发工具运行在Java的环境下。Java是一种跨操作系统的开发语言,YXRA-SDK集成开发工具正是看在这一点上而选择Java作为过渡阶段的开发语言。下面列出了一些市场上份额较大的操作系统支持的情况。注意:java为开发语言名称,java运行环境为jre,开发环境为jdk。一般开发环境会包括运行环境,即安装jdk时会要求安装jre,这两者会一同安装。我们常说的安装java或jdk版本均是指开发环境+运行环境。
    32位windows2000、windowsxp可正常运行,需要安装与之匹配的32位jdk16+;
    64位windows7、windows8、windows10、windows11等可正常运行,需要安装与之匹配的64位jdk18+;
    桌面版Linux(Ubuntu、Fedora、银河麒麟、统信UOS等)可正常运行,需要安装与之匹配的jdk16+;
    MacOS可正常运行,需要安装与之匹配的jdk18+,推荐jdk11版本;
    其他操作系统,如果能正常支持jdk16+,基本上可正常运行YXRA-SDK集成开发工具;

一、java如何安装?
    不同操作系统安装方法不一样。下面以windows为例。首先下载与操作系统匹配的jdk版本,一般是jdk18。虽然现在java版本已到2x甚到更高,对于YXRA-SDK开发工具而言,能正常运行即可,无须追求更高版本。到oracle官网上下载对于新手会有很多困难,纯英文可以调用浏览器上的自动翻译功能,主要是下载的网速慢,毕竟不在本土。


===这段介绍就决定了, 很难走下去
        当然这个项目听市场部讲是楼主的一个【大学合作项目】

需要下载的,楼主帮网友下载下,统一上传,让网友们好安装,
另外一定要拍个详细视频,
像杨老师这样尝试一步步下载再去安装测试的不多,
杨老师被打击到是楼主网盘无法下载

我们 STC 这方面能力有限,只能先尝试打通 C11 / C++11
争取 1年之内能够实用,用于量产开发




回复

使用道具 举报 送花

27

主题

152

回帖

1087

积分

金牌会员

积分
1087
发表于 2026-8-16 21:13:18 | 显示全部楼层
我现在非常关注stcIDE,希望他能用于量产开发,我的痛点是中断不能原始支持大于31号.

点评

STCIDE, 没这个中断号限制问题; KEIL C51 / C251, 也有大侠 拓展了其支持  详情 回复 发表于 2026-8-16 21:27
回复

使用道具 举报 送花

865

主题

1万

回帖

2万

积分

管理员

积分
25122
发表于 2026-8-16 21:27:32 | 显示全部楼层
zh*** 发表于 2026-8-16 21:13
我现在非常关注stcIDE,希望他能用于量产开发,我的痛点是中断不能原始支持大于31号. ...

STCIDE, 没这个中断号限制问题;
KEIL C51 / C251, 也有大侠 拓展了其支持
回复

使用道具 举报 送花

865

主题

1万

回帖

2万

积分

管理员

积分
25122
发表于 2026-8-16 21:27:44 | 显示全部楼层

Java 和 C++ 的关系非常密切,可以用**“同宗同源,但理念迥异”**来概括。它们既有深厚的历史渊源和语法相似性,又在设计哲学、内存管理和应用场景上走向了截然不同的道路。

以下是它们关系的几个核心维度:

1. 历史渊源:C++ 是 Java 的“老师”

  • 语法继承:Java 的语法深受 C++ 影响(C++ 又继承自 C)。如果你会 C++,学习 Java 会非常快,因为 if/elsefor 循环、类、接口、异常处理等基础语法几乎一模一样。
  • 设计动机:Java 的诞生部分原因是为了解决 C++ 的痛点。James Gosling 等人在设计 Java 时,刻意去掉了 C++ 中容易导致错误的特性(如指针运算、多重继承、手动内存管理),旨在创造一种“更简单、更安全”的 C++。
  • 名言:Java 曾被称为 “C++ --”(意为 C++ 减去了一些复杂特性)。

2. 核心设计哲学的差异

特性 C++ Java
内存管理 手动管理new/delete),程序员需对内存泄漏和悬空指针负责。 自动垃圾回收(GC),JVM 负责回收不再使用的对象。
指针 支持显式指针和指针运算,极其灵活但危险。 隐藏指针,只有引用(Reference),无法进行指针运算,更安全。
继承 支持多重继承(通过类),容易导致“菱形继承”问题。 单继承,但支持多接口实现,规避了复杂性。
编译目标 编译为机器码,直接由 CPU 执行,依赖特定平台。 编译为字节码.class),由 JVM 解释或 JIT 编译执行,跨平台。
头文件 需要 .h.cpp分离,编译依赖复杂。 无头文件,所有定义在一个文件中,编译模型更简单。
标准库 标准库(STL)相对精简,依赖第三方库(如 Boost)。 拥有极其庞大的标准库(集合、网络、IO、并发、GUI等),开箱即用。

3. 运行机制:编译型 vs 半解释型

  • C++:典型的编译型语言。代码 Source -> Compiler -> Machine Code -> OS。这意味着 C++ 程序通常启动更快,且没有运行时环境(Runtime)的开销,可以直接操作硬件。
  • Java编译 + 解释/JIT。代码 Source -> javac -> Bytecode -> JVM -> Machine Code。Java 依赖 JVM,这带来了“一次编写,到处运行”的跨平台能力,但启动时有类加载和初始化的开销。

4. 性能与底层控制

  • C++ 的天花板更高:在极端性能要求、内存布局控制、硬件交互场景下,C++ 无可替代。你可以精确控制每一个字节的分配和释放。
  • Java 的地板很高:得益于 JIT(即时编译器)逃逸分析,现代 Java 在长期运行的服务端应用中,性能往往能追平甚至超过 C++(因为 JIT 可以做基于运行时数据的激进优化,而 C++ 只能做基于静态分析的优化)。但 Java 无法像 C++ 那样精细控制内存布局(如缓存行对齐、对象在栈上分配等,虽然 Project Valhalla 正在尝试改变这一点)。

5. 应用场景的分野

  • C++ 的主场
    • 游戏引擎(Unreal Engine)、3A 游戏。
    • 操作系统、驱动程序、嵌入式系统。
    • 高频交易、浏览器内核(Chrome/V8)、数据库内核。
    • 对延迟极其敏感的实时系统。
  • Java 的主场
    • 企业级后端服务(Spring 生态)。
    • 大数据生态(Hadoop, Spark, Flink, Kafka)。
    • Android 应用开发(虽然 Kotlin 正在取代,但底层仍是 JVM)。
    • 云计算基础设施、微服务架构。

6. 现代趋势:互相借鉴

两者并非完全割裂,而是在互相学习:

  • Java 学 C++:引入了 var 类型推断、Records(类似 C++ 的结构体/值类型)、Switch 表达式、虚拟线程(Project Loom,类似 C++ 的协程思想)。
  • C++ 学 Java:引入了智能指针(std::shared_ptr, std::unique_ptr)来模拟 GC 的安全感,引入了 auto 类型推断,引入了 Lambda 表达式和 Stream API。

总结

Java 和 C++ 是“分家”的兄弟。

  • 如果你需要极致的性能、硬件控制、或者开发底层基础设施,选 C++
  • 如果你需要快速开发、跨平台、高并发业务逻辑、或者庞大的生态系统支持,选 Java

在技术栈中,它们经常共存:例如,一个 Java 后端服务可能通过 JNI 调用 C++ 编写的图像处理库;或者一个 C++ 游戏服务器可能用 Java/Python 写工具链和数据分析。理解 C++ 能让你写出更好的 Java(理解内存模型、对象布局),而理解 Java 能让你在写 C++ 时更注重抽象和安全性。


你目前更偏向哪边?我可以帮你规划一条对应的学习路线:

  1. C++ —— 想深入底层、游戏/引擎/高性能方向
  2. Java —— 想做后端开发、大数据或企业级应用
回复

使用道具 举报 送花

865

主题

1万

回帖

2万

积分

管理员

积分
25122
发表于 2026-8-16 21:33:12 | 显示全部楼层

从C99/C++98直接跨越到C23/C++23,感受到的不会是简单的版本号变化,而是一种语言设计哲学的根本性转向:从“提供基础工具,后果自负”转向了“主动构建安全护栏,提升开发体验”。

如果把早期的标准比作给开发者一把锋利但需要小心使用的“手术刀”,那么新标准更像是一套配备了许多安全装置、功能更集成、用起来更顺手的“现代精密仪器”。

🆚 C语言:从“灵活高效”到“安全现代”

C23对C99的演进,核心在于将许多长期依赖编译器扩展或需额外包含头文件的“非正式”好用法,变成了语言标准的一部分,并致力于从根源上消除不安全的编程实践。

关键领域 C99 (旧时代) C23 (新时代) 主要优势 (安全性与表达力)
布尔类型 需要包含 <stdbool.h>头文件,booltruefalse本质是宏定义。 booltruefalse被提升为语言关键字,开箱即用。 更纯粹、更安全,不再依赖头文件,也避免宏被意外重定义的风险。
空指针 使用整数宏 NULL,存在与整数 0混淆的隐患。 引入 nullptr关键字,作为类型安全的空指针常量。 从根本上杜绝了指针与整数的误用,让代码意图更清晰。
函数声明 void foo()表示参数未指定,调用未声明的函数仅产生警告。 void foo()明确表示无参数,调用未声明的函数会报错,且移除了过时的K&R函数定义风格。 消除了函数声明中模糊不清的部分,增强了类型检查,让许多隐蔽的错误在编译期就被捕获。
枚举类型 枚举的底层类型固定为 int 可以显式指定枚举的底层类型,如 enum E : long { ... } 更好地控制内存布局,确保在不同平台和二进制接口间的兼容性。
预处理与属性 嵌入二进制数据需要外部工具;依赖编译器扩展(如 __attribute__)来标记警告。 新增 #embed指令轻松嵌入资源,并引入**[[nodiscard]][[deprecated]]等标准属性**。 简化了资源嵌入流程,并将开发者长期依赖的非标准特性纳入了标准,让代码更具可移植性。

C23通过这些“破坏性”但有益的变更,让C语言在保持高效的同时,显著提升了代码的健壮性和可维护性

🚀 C++语言:从“面向对象基石”到“现代声明式编程”

C++23对C++98的演进是革命性的。C++98确立了模板和STL的基础,而C++23则在此基础上,引入了现代编程范式,极大地丰富了标准库。

关键领域 C++98 (老派经典) C++23 (现代利器) 主要优势 (开发效率与表达能力)
核心范式 面向对象和基础泛型编程是主流,需要手动管理资源(new/delete)。 全面拥抱函数式、声明式编程。智能指针实现RAII,constexpr支持编译期计算,Lambda表达式无处不在。 代码更抽象、更安全、表达力更强,从“怎么做”转向“做什么”,减少样板代码。
标准库 STL(容器、算法、迭代器)和I/O流是核心,功能相对基础。 标准库迎来了“大爆发”**。std::print提供现代格式化输出;std::ranges允许对数据流进行函数式组合操作;std::expected提供了更清晰的错误处理方式;std::mdspan用于高效表示多维数组。 显著提升了日常编码的效率和代码可读性,覆盖了更多高性能、高安全性的应用场景。
语法便利性 代码较为冗长,如循环和类型声明。 “推导this”简化了复杂设计模式的实现;多维下标运算符 matrix[0,0]让多维数组访问更自然 语法糖让代码更简洁、更自然,降低了编写复杂泛型代码的门槛。
错误处理 主要依赖异常或错误码,各有痛点。 std::expected<T, E> 提供了一种类似Rust Result的类型,函数可以返回预期值或错误信息,强制调用者处理错误。 提供了一种比异常更可控、比错误码更清晰的错误处理范式,使代码意图一目了然。

正如一些分析所指出的,C++23带来的改变不像C++98或C++11那样具有“革命性”的颠覆,但它更像是对C++20等标准奠定基础的现代范式进行精雕细琢和实战打磨。它解决的是开发者每天都会遇到的实际痛点。

💎 总结

  • C99 → C23:核心演进是 从“给你工具”到“为你护航”。通过将安全特性标准化、增强类型检查,让经典的C语言在现代开发中变得更可靠、更易于合作。
  • C++98 → C++23:核心演进是 从“让你能驾驭复杂性”到“让你优雅地解决复杂问题”。通过引入现代范式、丰富标准库,C++23让开发者能用更少、更清晰的代码,完成更复杂、更安全的任务。

这是两种语言在历经数十年发展后,面向未来软件工程挑战所交出的答卷。如果你对 std::expected或C23的 #embed等具体特性感兴趣,我们可以继续深入探讨。

回复

使用道具 举报 送花

865

主题

1万

回帖

2万

积分

管理员

积分
25122
发表于 2026-8-16 21:35:42 | 显示全部楼层

C++语言的下一个重要标准是 C++26。根据2026年最新的会议信息,C++26的技术内容已经基本完成并进入定稿阶段,委员会已经在着手规划下一个版本C++29的特性了。

🚀 C++26的四大核心新特性与优势

C++26之所以被评价为“自C++11以来最有分量的一次更新”,主要体现在以下四个方面,其优势在于从根本上提升了C++的表达能力、安全性和开发效率。

  1. 编译期反射 (Compile-time Reflection):这是C++26最核心、最具变革性的特性。它允许程序在编译时查询和操作自身的类型、成员等信息,且没有任何运行时开销

    • 优势:过去需要复杂模板技巧(如 SFINAE)才能实现的元编程,现在有了更直接、可读性更强的方式。它能极大地简化序列化、对象关系映射(ORM)、接口定义等框架的实现,甚至可能改变C++语言未来的演进方式——许多新功能未来可以通过库的形式实现,而不再需要修改语言本身。
  2. 强化内存安全 (Memory Safety):C++26在内存安全方面迈出了实质性的一步,而且是**“零成本”或接近零成本**的。

    • 具体措施:只需用新编译器重新编译代码,就可以消除因读取未初始化的局部变量而导致的未定义行为(UB)。同时,标准库(如 vectorspanstring)的许多操作也加强了边界安全检查。
    • 优势:这并非引入一套全新的安全子集,而是在现有代码基础上提升默认安全性。根据Google的实践经验,仅此一项改动就在其数亿行代码库中修复了超过1000个缺陷,并将段错误发生率降低了30%,而平均性能开销只有大约0.3% 。这让现有C++项目能以极低成本获得显著的安全性提升。
  3. 合约编程 (Contracts):合约(Contracts)为C++带来了原生的防御式编程支持。

    • 具体措施:开发者可以在函数声明中直接添加前置条件(函数调用前必须满足的条件)和后置条件(函数返回前必须满足的条件),语法清晰,对调用者和静态分析工具都可见。
    • 优势:相比传统的 assert宏,合约是“一等公民”,能更好地表达设计意图,提升代码的健壮性和可维护性。它也直接增强了功能安全性和内存安全性。
  4. 统一的并发与异步框架 (std::execution):C++26引入了基于 Sender/Receiver 模型的 std::execution框架,为C++的并发和异步编程提供了统一模型。

    • 优势:它支持结构化并发,能从架构上避免数据竞争,让编写安全、高效的异步代码变得更加容易,并能很好地与C++20的协程协同工作。

🔭 前瞻:未来的C++29

C++26尚未正式发布,C++29的轮廓也已显现。在2026年6月的会议上,C++29的草案已经采纳了一些新特性,例如虚拟函数对合约的支持,以及为关联容器增加类似Python风格的 .lookup(key) 方法。而C++26带来的反射能力和新的安全基础,也将是C++29继续深化发展的核心。

总的来说,C++26是一个实用且强大的版本,它的设计目标直指开发者长期以来的痛点——元编程的复杂性和内存安全的挑战。如果想了解其中某个特性(比如反射的具体用法)的更多细节,我们可以再继续深入探讨。

回复

使用道具 举报 送花

865

主题

1万

回帖

2万

积分

管理员

积分
25122
发表于 2026-8-16 21:49:46 | 显示全部楼层
回复

使用道具 举报 送花

865

主题

1万

回帖

2万

积分

管理员

积分
25122
发表于 2026-8-16 21:50:32 | 显示全部楼层
C++23 for STC32

===STC 第三组 编译器力量 也在努力尝试中
回复

使用道具 举报 送花

865

主题

1万

回帖

2万

积分

管理员

积分
25122
发表于 2026-8-16 21:55:45 | 显示全部楼层
C11编译器 for STC32, 也会支持 STC8, 争取1年后能放心使用于量产
===STC 第一组 编译器力量 在奋力前行中,已公开测试

https://stcide.stcaimcu.com/
截图202608162153206837.jpg
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-9-23 16:05 , Processed in 0.078580 second(s), 87 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表