跟我学专题

【跟我学RISC-V】(三)openEuler特别篇

写在前面 这篇文章是跟我学RISC-V指令集的第三期,距离我上一次发文已经过去一个多月了,在这个月里我加入了oerv的实习项目组,并且还要准备期末考试,比较忙。 在这篇文章里我会隆重、详细地介绍一个对RISC-V支持非常友好的Linux发行版,同时也是国产操作系统 — openEuler.在此之前我都是使用我最熟悉的Fedora,在x86上Fedora确实非常好用、体验好,但是在RISC-V上总

跟我学C++中级篇——内存屏障内存栅栏和编译器屏障以及相关

一、低级同步常见的技术术语 在一些操作系统或者计算机接口等比较原理化的书籍中,经常提到一些低级的同步术语,或者说一些同步的抽象的说法。最典型的就是内存内存屏障。不同的平台和语言有不同的叫法,有的叫内存栅栏或者屏障指令。它的主要作用就是多线程环境下内存访问的顺序性和可见性即实现在某点的中行化操作。 内存屏障有两大类,一般是内存屏障(或者叫CPU屏障)和编译器屏障。 1、CPU内存屏障 这种屏障一般

跟我学C++中级篇——封装对象的实践

一、对象封装 在面向对象编程中,首要的事情就是如何进行对象的封装。说的直白一些,就是如何设计类或者是结构体。许多开发者看过不少的书,也学过很多的设计方法,更看过很多别人的代码。那么如何指导自己进行对象的封装呢? 在书籍中学过设计原则如才分析过的六大原则,也从书本上知道了继承是面向对象设计的一个重要方式。还有前面提到的内联以及学习过的内存对齐、依赖注入(注意不是依赖倒置)等等,那么如何才能在对象封

跟我学C++中级篇——内联补遗

一、内联引出的问题 在将一个内联变量定义到编译单元时,然后再按正常的方式使用时,编译会报一个错误“odr-used”。ODR,One Definition Rule,单一定义规则。在C/C++程序中,变量的定义只能有一处,至于ODR的规则如何定义,这个在C++的标准文档中说明的非常清楚。大家可以去查询,有时间再总结一下一起分析。 这个问题就回到了inline的问题相关,即inline(and o

跟我学做零售数据分析报表-商品滞销分析

商品滞销的情况很常见,因此商品滞销分析也是基本属于零售数据分析标配内容之一。那么,商品滞销分析报表该怎么做?要做计算哪些指标,怎么分析滞销趋势?别急,奥威BI零售数据分析方案预设了一张BI商品滞销分析报表,供大家参考。 该报表将滞销商品分为两类,分别是有库存0销量、有库存销售最差200的商品,然后在对这两类滞销商品的分析指标进行计算分析,分析其趋势波动变化,从不同维度了解其去库存压力与机会。 一

跟我学C++中级篇——const和constexpr的使用

一、从例程介绍 已经不同的篇章里介绍和分析过const及constexpr,特别对于后者,从c++11到c++14直到c++17甚至以后,功能都不断的在完善。那么这么多复杂的应用如何搞清楚呢?下面先从代码看起: #include <iostream>void testArray(const int& len) {//编译错误,len不是常量int buf[len] = {0};}int m

【跟我学RISC-V】(二)RISC-V的基础知识学习与汇编练习

写在前面: 这篇文章是跟我学RISC-V的第二期,是第一期的延续,第一期主要是带大家了解一下什么是RISC-V,是比较大体、宽泛的概念。这一期主要是讲一些基础知识,然后进行RISC-V汇编语言与c语言的编程。在第一期里我们搭建了好几个环境,你可以任意选一个你喜欢的RISC-V环境(能够执行RV机器码的平台),然后进行代码编写、编译、汇编、链接、运行、观察现象的这一过程。同样地,在这一篇里我也会拿

跟我学C++中级篇——零长度数组

一、零长度数组 最初使用零长度数组是在串口通信和网络通信中使用的,它类似于下面的代码: struct Data{int a;char c;char buf[0];}; 零长度数组又叫柔性数组,这个非常贴切。它早期是GNU的一个扩展,后来在C99中也进行了支持(-pedantic 禁用扩展),不过在C99中使用时,就不用写那个0了。如果在早期的VC或者其它平台上不支持这种零长度数组的,可

【跟我学RISC-V】(一)认识RISC-V指令集并搭建实验环境

写在前面 现在计算机的体系架构正是发展得如火如荼的时候,占领桌面端市场的x86架构、占领移动端市场的arm架构、在服务器市场仍有一定地位的mips架构、国产自研的指令集loongarch架构、还有我现在要讲到的新型开源开放的RISC-V指令集架构。 我先说一说我的学习经历,三年前我开始学习x86架构,不得不说x86架构这么多年的发展变得是真的非常复杂和难以概括,它为了兼容性,不得不保留一些早期

跟我学C++中级篇——内联

一、内联函数 内联函数的定义有各种形式,这里只提一种百度百科上的定义:“在计算机科学中,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊函数进行内联扩展(有时称作在线扩展);也就是说建议编译器将指定的函数体插入并取代每一处调用该函数的地方(上下文),从而节省了每次调用函数带来的额外时间开支。”。 定义是明确的,但重要的是理解,所谓内联就是和外联的区别。在

【跟我学RISC-V】认识RISC-V指令集并搭建实验环境

写在前面 现在计算机的体系架构正是发展得如火如荼的时候,占领桌面端市场的x86架构、占领移动端市场的arm架构、在服务器市场仍有一定地位的mips架构、国产自研的指令集loongarch架构、还有我现在要讲到的新型开源开放的RISC-V指令集架构。 我先说一说我的学习经历,三年前我开始学习x86架构,不得不说x86架构这么多年的发展变得是真的非常复杂和难以概括,它为了兼容性,不得不保留一些早期

第三章 授权——《跟我学Shiro》

目录贴: 跟我学Shiro目录贴 授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等)。在授权中需了解的几个关键对象:主体(Subject)、资源(Resource)、权限(Permission)、角色(Role)。 主体 主体,即访问应用的用户,在Shiro中使用Subject代表该用户。用户只有授权后才允许访问相应的资源。 资源 在应用中用户可以访问

跟我学c++中级篇——静态多态

一、多态 Polymorphism,多态。学习过c++的人如果不知道多态,基本上就是打入c++内部的C程序员了。在前边曾经对多态进行过分析,对其中的虚函数(虚表等)也进行过较为详细的说明。 多态其实非常好理解,不要硬扣书本上的定义。多态,顾名思意,就是一种行为,多种状态结果。明白了这个意思,再回头和概念对照,就非常容易理解了。 多态可以分为静态多态和动态多态两类,一般来说,在国内的教科书里,只会

跟我学UDS(ISO14229) ———— 0x31(RoutineControl)

客户端请求启动/停止服务器中的例程或请求例程结果。客户端使用 RoutineControl 服务来控制 RID,RID 由两字节的例程标识符标识。具体的控制类型有以下三种:第一种: 启动 RID;第二种: 停止 RID;第三种: 查询 RID 执行结果。这里对 RID 的三种控制类型做一个详细的介绍: 启动 RID  如果对诊断请求的响应是肯定或否定,则表明该请求已被执行或正在进行中,例程将

rust跟我学六:虚拟机检测

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么检测是否在虚拟机里运行的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[我的

跟我学OpenJPA之三(更快、更高、更强)

上节跟我学OpenJPA之二(Hello OpenJPA)   昨天打开ITEYE,发现我的两篇文章上了首页兴奋ing.... 上ITEYE不短时间,同时上两篇还是第一次,感谢大家的支持,谢谢!   本来昨天考虑好了第三节的题目和内容,可惜出了趟差,回来的时候又冒雨开了两个多小时的车,高速上精神太紧张回来直接倒头睡觉,今天虽然晚上时间也不多,但是有大家的支持再累也得补上。嘿嘿 废话多了

打包Android程序—Android跟我学2.2

如果自己已经写好了Android程序,或者自己的程序想运行在同学或者同事的手机上,可以使用下面的步骤将自己的android应用程序进行打包,然后发布到Android市场或者一些android门户网站。 一、进行android程序打包时,需要保证安装程序可以正常的执行,可以修改AndroidManifest.xml文件,增加一个安装程序包的权限 <uses-sdk androi

使用Android手机或平板进行程序开发—Android跟我学1.2

在平常的Adnroid程序开发中,即使用虚拟Android平台进行android程序开发时,速度可能比较慢,而且有一些程序不能进行测试,如手机震动提示,短信发送等,通过下面的设置可以将eclipse编号的Android程序通过自己的Android手机或平板进行开发测试。 一、手机设置——》开发者选项——》勾选USB调试,当你的手机连接电脑时需要安装驱动程序, 二、打开eclip

2.1搭建Android环境—Android跟我学1.1

1、搭载Android环境需要以下一些软件: 1)Android-SDK:与JDK类似的开发平台,通过它用户可以进行各个版本的Android程序开发,下载地址:http://developer.android.com/sdk/index.html#download。下载完后可以解压到任意目录,这里我放在D:\的根目录下 2)Eclipse:作为Android编程的环境,可以说是一个容器,可以使

跟我学C++编程中级篇——std::enable_if的使用

一、std::enable_if介绍 对于SFINAE(不清楚的可以翻一下以前的相关文章)开发者来说,std::enable_if是绕不开的一个小话题。在C++11至C++20间,其在模板的元编程中起到了重要的作用。不过在C++20后Cocepts可以实现更清晰更简单的方式。它的定义方式为: template< bool B, class T = void >struct enable_if

[通知]rust跟我学八:获取指定目录下的所有文件全路径 已上线

大家好,我是带剑书生,开源库get_local_info的作者。目前我的付费专栏已经上线第八篇文章,用于介绍在实现get_local_info过程中,遇到该问题所使用的解决方法,喜欢的朋友可以去订阅了,19.9元,非常便宜的价格,做开源不容易。希望能帮助您在学习Rust时,少走弯路,尽快进入项目。 文章直通车: rust跟我学八:获取指定目录下的所有文件全路径-CSDN博客

rust跟我学六:虚拟机检测

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么检测是否在虚拟机里运行的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[我的

rust跟我学八:获取指定目录下的所有文件全路径

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么获取指定目录下的所有文件全路径的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址

rust跟我学五:是否安装双系统

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎么得到检测双系统的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[我的Rust

rust跟我学二:模块编写与使用

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info中模块的使用。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[我的Rust库更新]g

rust跟我学三:文件时间属性获得方法

图为RUST吉祥物 大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info是怎样获得杀毒软件的病毒库时间的。 首先,先要了解get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址:[我的Rust库更