
C/C++
记录平凡的学习过程。
清欢_小铭
手机厂从事嵌入式软件开发,985小硕。
嵌入式Linux、围绕C/C++、单片机裸机、RTOS。
展开
-
SPI_WRITE宏解析
define GET_SPI_WRITE_MACRO(_1, _2, _3, NAME, …) NAME中:_1, _2, _3 是 GCC 提供的参数扩展,它们会展开为传递给宏的第一个、第二个和第三个参数;是一个可变参数宏的特殊标识符,它用于在宏定义中展开传递给宏的参数。NAME 是 SPI_WRITE_0,_3 代表 SPI_WRITE_1。进一步展开:SPI_WRITE_1(0x70, 0x01, 5)如果SPI_WRITE(0x70, 0x01);本例中,NAME此时是SPI_WRITE_1,原创 2024-12-05 11:32:43 · 262 阅读 · 0 评论 -
两个C语言题目
第一题,Linux内核中的常见写法;第二题,工作中用到的FIFO结构原创 2024-04-16 19:33:56 · 482 阅读 · 0 评论 -
栈踩踏实验
data:已经初始化的全局变量/局部静态变量.bss:未初始化的全局变量/局部静态变量.got.plt:全局偏移量表,保存全局变量引用的地址.rodata:只读数据text:代码节,保存了程序执行的代码.init:程序初始化和终止的代码stack:栈,向低地址生长heap:堆,向高地址生长data:读写权限的数据段code:具有执行权限的数据段。原创 2023-05-28 23:21:42 · 1133 阅读 · 0 评论 -
计算机系统作业
#include <stdio.h>#include <stdlib.h>#include <string.h>//////////////////////第二题的///////////////int tadd_ok(int x, int y) //判断两个数相加是否溢出,溢出就返回0{ int sum = x + y; if(x > 0 && y > 0) { if(sum <..原创 2022-02-20 16:48:36 · 512 阅读 · 0 评论 -
48430 Assessment Task 2: Assignment 员工管理系统
48430 Assessment Task 2: Assignment 员工管理系统。原创 2022-10-07 21:30:00 · 455 阅读 · 0 评论 -
C语言 UNUSED_VALUE 宏
#define UNUSED_VALUE(v) (void)(v);原创 2022-08-30 22:37:15 · 1175 阅读 · 0 评论 -
2021-22-3《计算机科学基础II》期末上机试卷(A卷)用
一个c++面向对象的题目原创 2022-06-23 22:45:00 · 180 阅读 · 0 评论 -
csv文件读写与数据操作,
读取股票信息并整理原创 2022-05-31 00:45:00 · 147 阅读 · 0 评论 -
c++ 快速内存池
/*编写一个内存池,在运行期间不进行动态内存分配为了实现快速的内存分配,通常一个内存池分配器使用预定义大小的块。这个想法类似于隔离列表,但是块的确定更加快速。池分配器使用块(池)和每个块中的小块的概念进行操作。每个块都有预定的大小,并对对象头进行编码,其中存储着元信息。为分配器或收集器的目的所需。由于大小是预定义的,我们不需要在头中存储它在头中,而只能保持对下一个对象的引用。特点。参数化的池大小应考虑内存对齐在初始化过程中进行块分配(或者在编译过程中更好)。块的内原创 2022-05-25 21:30:00 · 183 阅读 · 0 评论 -
求两个对称矩阵之和
已知a和b两个n×n阶的对称矩阵在输入时对称。输入下三角元素,存入一维数组,计算和与积。#include <iostream>#define MAX_LEN 1000using namespace std;//upper triangular matrix int acc(int i, int j,int& n) { if (i < j) swap(i, j); return i * (i + 1)/2 + j;}void add(in原创 2022-05-22 22:00:00 · 911 阅读 · 0 评论 -
实验八:文件处理
题目五金店的老板,需要保持库存,可以告诉你你有什么不同的工具,你有多少的手,每一个的成本。(a)编写一个程序,初始化顺序文件hardware.txt,关于每个工具允许您输入的数据,允许您列出所有工具,允许您删除不再拥有的工具的记录,并允许您更新文件中的任何信息。工具识别号应为记录号。使用以下信息启动文件:(b)重复(a),但这次使用的是随机访问文件hardware.dat。您应该为上述记录创建一个类,并为每条记录创建一个对象。在创建随机访问文件时,需要创建100条空记录。代码// Console原创 2022-05-14 21:31:36 · 163 阅读 · 0 评论 -
CPT106 C++ Programming and Software Engineering II
一共七个作业题目,主要考察c++面向对象,三个版本,vs2019写的,全部满分完美。题目一:Int[] union_Array (int a[], int lenA, int b[], int lenB);题目二:student 类及操作;题目三:student 类及操作(链表);题目四:char *findC (char const *source, char const *obj);题目五:Circle类;题目六:最小二乘法拟合;题目七:在线商品管理;包含三个以上版本代码,不怕查重...原创 2022-05-30 09:15:45 · 578 阅读 · 0 评论 -
实验项目五:类和对象&&实验项目六:运算符重载
实验项目五:类和对象_实验项目六:运算符重载原创 2022-05-11 11:30:00 · 742 阅读 · 0 评论 -
五阶最小二乘+迭代方法曲线拟合
最小二乘法,五阶原创 2022-05-08 13:00:00 · 1127 阅读 · 0 评论 -
实现一个shape类_c++_Problem 2. Shap
实现了一个shape类,c++面向对象,上海科技大学作业原创 2022-05-06 08:30:00 · 1059 阅读 · 0 评论 -
手撕array类_c++_Problem 1. Array
实现一个简单的一位数组类,上海科技大学作业原创 2022-05-06 08:30:00 · 146 阅读 · 0 评论 -
二叉树表示数学表达式_c++_上海科技大学作业_Problem 3. Expression
上海科技大学作业,考察面向对象c++,思路是对的,然而测试都没有通过。原创 2022-05-06 08:00:00 · 349 阅读 · 0 评论 -
实现Distance类 c++ oop
面向对象的考试题#include <iostream>#include <ctime>using namespace std;class Distance {private: int feet, inch;public: Distance() { feet = 0; inch = 0; } Distance(int input_inch) { feet = input_inch / 12;原创 2022-02-16 00:45:00 · 276 阅读 · 0 评论 -
c++ string类的实现 手撕string类
要求要求通过动态数组实现,不能分配静态定长内存。要求实现如下函数要求事情内存时不能使用new华为delete,new char[n_bytes] → new_char_array(int n_bytes), and delete[] p → delete_char_array(char *p)。实现String.cpp#include "String.h"int String::strlen(const char *s) { int len = 0; for (;原创 2022-02-11 01:00:00 · 656 阅读 · 0 评论 -
C语言 最小二乘 向量旋转 欧拉方法求洛伦兹方程
数学计算考试题原创 2022-01-25 09:32:50 · 1109 阅读 · 0 评论 -
c++继承多态虚函数例题
写一个抽象类Pet,里面有3个纯虚函数void setName(string name),string getName();void play();写一个类Animal,里面有保护类型的成员变量string name,一个带参数的构造函数,2个成员函数,void walk),void eat()写一个类Cat,要求同时继承题2,3中的类。写一个类Dog,要求同时继承2,3中的类。自己设计编写代码,生成Cat,Dog对象,并且要求体现出多态。// ConsoleApplication1.cpp .原创 2022-01-18 10:00:00 · 691 阅读 · 0 评论 -
C++ 纯虚函数和抽象类 实现shape类
#include <iostream>using namespace std;const double PI = 3.1415926;class Shape{public: virtual double getArea() const = 0; Shape() {} ~Shape() {}};class Rectangle :public Shape {public: Rectangle() { length = 0.0; width = 0.0; } ~Rectan.原创 2022-01-12 13:30:00 · 1102 阅读 · 0 评论 -
用C语言实现猜单词的小游戏
该程序将从单词库文件中随机地选择一个单词,显示该单词的中文名,用户输入对应的英文单词。系统显示猜中的字母,用户可以最多有8次猜测的机会。如果用户在规定次数中内猜中了该单词,则该次游戏用户胜利,否则用户失败。用户可以选择是否继续重复进行游戏。主要基本功能有:开始猜单词、榜单(记录每个用户历史记录,并排名次)、单词管理(对单词库中的单词进行增删改)。原创 2022-01-06 18:01:47 · 5889 阅读 · 2 评论 -
猜单词游戏
猜单词游戏,课程作业原创 2021-12-03 10:37:57 · 223 阅读 · 0 评论 -
未初始化的类,通过指针调用其非静态函数
#include <string>#include <stack>using namespace std;class A {public : A(int a = 10) :a_(a) {} void printstring() { cout << "printstring" << endl; } void printint() { cout << a_; }priva原创 2021-08-13 20:25:16 · 297 阅读 · 0 评论 -
attribute
一、介绍 GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。 __attribute__ 书写特征是:__attribute__ 前后都有两...转载 2021-07-29 20:43:39 · 98 阅读 · 0 评论 -
C语言的一些宏定义
取整x对a向下取整数倍的宏定义ALIGN_DOWN(x, a) 例子(65,3)->63x对a向上取整数倍的宏定义ALIGN_UP(x, a) 例子(65,3)->66#define ALIGN_DOWN(x, a) ((x)-(x)%a)#define ALIGN_UP(x, a) ((x)+(a)-(x)%a)原创 2021-07-29 11:09:36 · 457 阅读 · 0 评论 -
结构体对齐 大小 位域问题
非位域情况下https://blog.youkuaiyun.com/abc_xixi111/article/details/80262753有位域https://blog.youkuaiyun.com/xing_hao/article/details/6678048原创 2021-07-28 22:04:43 · 178 阅读 · 0 评论 -
关于数组相关乱七八糟
char b[] = "1234";int main(){ char a[] = "1234"; std::cout << "Hello World!\n";}a是指针,指向局部变量“1234”,存在栈中b指向全局变量“1234”。原创 2021-07-28 21:09:28 · 100 阅读 · 0 评论 -
文本编辑器:Linux下基于ncurses的C++文本编辑器(加州大学尔湾分校作业)
工程传送门用codeblock写的https://download.youkuaiyun.com/download/renzemingcsdn/19421843题目很长一堆英文,题目图片放到文末,主要是大小写字母输入,常规的回车、换行、上下左右、光标移动到行首、行尾、删除整行、删除一个字符,还有撤销重做。设计思路——命令模式命令模式的资料一艘一大堆,在此不赘述,涉及撤销重做的,很明显用命令模式。https://www.jianshu.com/p/1bf9c2c907e8所有涉及的文件如图所示。原创 2021-06-07 22:49:30 · 315 阅读 · 0 评论 -
安全数组-简易矩阵容器-STL及迭代器仿写作业
需求目标是实现类似STL的矩阵库,可以实现一维和二维矩阵,老师制作了一部分,学生负责完善。模板化的安全数组成为STL兼容的容器。By now you should have a working templatized safe array class from the midterm and safematrix project. Build upon the templatized safe array (1- dimensional NOT the safe “matrix”) add an ite原创 2021-06-03 13:45:25 · 149 阅读 · 0 评论 -
多项式函数的参数辨识系统
题目1.基本要求:[1]编写多项式函数的参数辨识系统,多项式函数的形式为:y = a0 + a1·x + a2·x2 + …+ an·xn式中,x为自变量 (xmin≤x≤xmax),y为因变量,a0, a1, a2, …, an为多项式的系 数,n为多项式的次数。[2]每个多项式包括以下信息:多项式名称(根据n的值命名, 如2次多项式、3次多项式,… )、自变量的上限 xmax和下 限xmin,多项式的次数(C++)即n的值)、多项式系 数的 真实值a0, a1, a2, …, an,多项式系数原创 2021-05-28 23:50:28 · 2379 阅读 · 15 评论 -
C++ 智能指针后面 . 与 -> 运算符的一点体会
C和C++中,->运算符和.运算符都与引用类、结构和共用体的成员有关。A.B意味着A是一个实体,是对象或者结构体,B是A的成员。A->B意味着A是一个指针,B是A的成员。//定义一个A类,整形m_B是A的成员,创建对象m_Aclass A{public: int B:}m_A;//将实例m_A中,B的值赋m_Bint m_B=m_A.B;A* p_A = &m_A;m_B=m_A->B;//以指针形式,访问实例m_A可见,一个变量后面可以跟 . 运算符,一定原创 2021-05-17 21:17:39 · 330 阅读 · 0 评论 -
C++ MathGL 二维数据绘图
C++数据可视化MathGL工具,本文主要介绍二维绘图过程。原创 2021-03-12 09:42:56 · 2887 阅读 · 0 评论 -
C++ 读取CSV文件中的数据到Mat
热图像视频数据是,每一帧为一个csv文件,每行像素值由逗号分隔,行与行之间是换行符,数据格式是纯文本,科学计数法。需要将全部数据存至一个mat中,以便后续使用opencv库处理。原创 2021-03-10 09:35:36 · 1460 阅读 · 0 评论