C语言中的数据存储
1.数据类型
c语言自带的一些数据类型
char //字符型 1byte
short //短整型 2byte
int //整型 4byte
long //长整型 4 or 8byte
long long //更长的整型 8byte
float //单精度浮点数 4byte
double //双精度浮点数 8byte
long在不同环境中字节大小不同(比如VS中 ...
C语言中的算术类型转换
1.寻常算数转换
在C语言中,当不同类型的操作数参与到算术运算时,编译器会将操作数转换成同一类型,再运算。这一过程被称为寻常算术转换,由于这个过程我们程序员看不见,所以它也是一种隐式类型转换(见整型提升)
1.1寻常算数转换的过程
1.1.1整型提升
若操作数是小整数类型(字节大小小于int),会自动进行整型提升,提 ...
POSIX兼容系统上read和write系统调用的行为总结
关于UNIX和Linux的宣传语中,一切皆文件应该是最广为人知的一句。
不管是普通文件,还是硬件设备、管道、网络套接字,在Linux甚至还有信号和定时器都共享一套相似的api,大家可以用类似的代码完成各种不同的任务,大大简化了代码复杂度和学习成本。
当然这只是理想中的情况,现实是普通文件和硬件设备是两种完全不同的东西 ...
开始学习C++(二)
本文记录了没有main的例外程序以及命名空间的几种使用方法。
“没有”main() 的例外程序
在 Windows 编程中,可以编写一个动态链接库 (DLL) 模块,这是其他 Windows程序可以使用的代码。由于 DLL 模块不是独立的程序,因此不需要 main();
一些专用环境的程序,例如机器人中的控制器芯片,可能不需要 main();
有些编程 ...
C语言中的整型提升
整型提升
什么是整型提升?为什么要使用整型提升?整型提升是如何进行的?
1.整型提升
在c语言中,一些表达式在求值的过程中,操作数可能需要转换为其他类型,这种转换,我们程序员是看不见的,称其为隐式类型转换,而整型提升就是之一
1.1什么是整型提升
在C语言中计算整数的时候,会将整型家族中小于4字节的类型(char , ...
csp-j/s历险记
csp-j/s比赛一直是一个十分SB优质的比赛
-在那个晴空万里的早上,与同学们共同坐地铁前往CSP-J考场-
ye————————————————————————————————!
-从从容容游刃有余
——第一题——
AC!
——第二题——
AC!
——第三题——
65
——第四题——
16(谈崩了,骗分骗错,原本能拿40分的 T_T)
— ...
关于一种计算递归次数题的思路
代码如下
要求计算最后输出的count的结果
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int count = 0;
int fib(int a)
{
count++;
if (a == 0)
return 1;
else if (a == 1)
return 2;
else
return fib(a - 1) + fib(a - 2);
}
int main()
{
fib(10);
printf("%d", count);
}
当遇到此类检索递归调用次 ...
CPP 学习笔记 & 语法总结
CPP 学习笔记
秋招的时候(嵌入式方向)面试官常问到 C++,因此花了几天过了一下基础知识,本文为学习笔记。快速学习的经验:如果有其他语言基础的情况下,想要学习一门新语言,让 AI 帮你列一下这个语言的学习大纲或者目录,然后针对目录中的每个知识点让 AI 讲解并给出示例,这样非常快就能学完一门语言,当然这只是个人 ...
c语言中的操作符
1.算数操作符
a.+ 加号
b.- 减号
c.* 乘号
d./ 除号 当 / 的两边都为整形时,计算结果默认为 int 。当 / 两边任意一边出现小数,计算结果为float or double
e.% 取模 % 计算的是两数相除后的余数,其两边必须为 int ,整除时结果为 0
2.移位操作符
使用条件:只能对于 int类型 使用,无符号整型这里算 ...
C++23的out_ptr和inout_ptr
c++23新增了一些智能指针适配器,用来扩展和简化智能指针的使用。
这次主要介绍的是std:ut_ptr和std::inout_ptr。这两个适配器用法和实现都很简单,但网上的文档都比较抱歉,还缺少一些比较重要的部分,因此单开一篇文章记录一下。
out_ptr
首先从功能最简单的out_ptr讲起。
std:ut_ptr其实是一个函数,返回一个类型为std:u ...
[CSP 2025]游记
CSP-J
\(T1\)
循环结构 \(+\) 字符串,橙题,不说了肯定做出来了。
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define N 2000005
int top,a[N];
string s;
signed main(){
cin>>s,s=" "+s;
for(int i=1;i<s.length();i++) if(s>='0'&&s<='9') a[++top]=s-'0';
sort(a+1,a+top+1);
for(in ...
使用RNNoise进行音频降噪
操作系统:Debian 12.5_x64 & Windows10_x64
rnnoise版本:0.2
gcc版本:12.2.0
python版本: 3.9.13
RNNoise是一个将传统数字信号处理与深度学习相结合的开源实时音频降噪库,可在消耗极少计算资源的情况下实现毫秒级降噪,今天整理下这方面的笔记,希望对你有帮助。
该库涉及算法的描述详见论文(一种混合 DSP/深度学习方 ...
C_结构体学习_1
这里记录一下怎么为结构体成员变量实现内存连续且为动态
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
using namespace std;
// 今天描述结构体中的指针和数组
typedef struct _Player
{
int level;
char name[20];
} Player, *PPplayer;
// 上面这个第一 ...
关于 QImage 加载本地大图片的崩溃问题
版权声明:
本文为原创内容,作者:[Yzi321]。
转载请注明出处:
原博主主页:https://www.cnblogs.com/Yzi321
本文链接:https://www.cnblogs.com/Yzi321/p/19162705
许可协议:CC BY 4.0
更新
因为重新编译太过于繁琐,这里笔者把QImageReader源码挑选出部分核心功能,修改该qt bug,改为MXTImageReader模块。再将此模 ...
比赛题解 总结
1.[HNOI2003] 操作系统
思路
此题是一道大模拟,主要根据任务优先级来计算最后执行此任务的时间,此时我们可以进行分类讨论:
当此任务的到达时间晚于等于上一个未执行完任务的结束时间,上一个任务就一定能运行完,因此直接输出结束时间
当此任务的到达时间早于上一个未执行完任务的结束时间,上一个任务就只能在 CPU 中 ...
轻量级图片信息解析程序
简介
平时的工作中我经常需要获取图片文件的一些基本信息(宽度、高度、通道数、色深)。因为项目依赖 opencv,以前都是直接用的 opencv 来读入图片后获取这些信息的,opencv 读入图片是读取所有的数据,会影响效率和内存占用,后来改用 stb_image,但是发现它不支持 tif 格式的文件。来回在网上搜索了一些开源的图片解析工 ...
UMDF驱动开发入门:二 详解INF文件与设备类选择
在Windows驱动开发中,UMDF为用户模式驱动程序提供了一个安全稳定的开发框架。而INF文件作为驱动安装的核心,其正确配置对于驱动能否正常工作至关重要。这篇博客详细介绍UMDF驱动的INF文件配置,特别是设备类的选择与配置。实可以把INF文件理解为驱动的"安装说明书" - 它告诉Windows系统:
这个驱动叫什么名字
应 ...
UMDF驱动开发入门:一 创建虚拟设备,从安装到I/O交互全解析
这篇博客详细介绍了UMDF驱动的基本概念、生命周期、代码实现和应用交互,适合初学者入门
• 目的:创建一个“虚拟设备”(软件模拟的设备),让用户模式应用程序(比如你的C#或C++程序)能与之“对话”。它不控制真实硬件(如USB设备),而是演示驱动的基本流程:加载、创建设备、处理请求。
• 为什么用UMDF? UMDF ...
FFmpeg开发笔记(八十四)使用国产的librestreaming实现RTMP直播
《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”介绍了轻量级流媒体服务器MediaMTX,通过该工具可以测试RTSP/RTMP等流媒体协议的推拉流。可是在此之前,得先有一个推流工具向MediaMTX推送视频流,这样末端的拉流程序才能从MediaMTX源源不断地拉取视频流。那么Android手机可使用librest ...
C++ std::function简单笔记
基本形式
#include <iostream>
#include <functional>
/**
* 1. C++11新增的类型别名声明方式
*/
using pFunc1 = void(); //普通函数
using pFunc2 = void(int, int); //带参数的函数
using pFunc3 = int(int, int); //带参数和返回值的函数
using pFunc4 = void* (); //返回指针的函数
using pFunc5 = co ...