刷新
初识C语言

博主头像 一,c语言的基本概述 c语言是一门编译型语言。c语言的程序需要通过编译软件程序将源代码转换成可执行代码的程序,可执行代码是用计算机机器语言表示的代码。如:c语言在Windows下生成的可执行代码是以.exe为后缀的,在Unix下生成的可执行代码是以.out为后缀的。 二,c语言的特性 c语言是可移植 ...

FFmpeg开发笔记(十六)Linux交叉编译Android的OpenSSL库

博主头像 ​《FFmpeg开发实战:从零基础到短视频上线》一书的例程主要测试本地的音视频文件,当然为了安全起见,很多网络视频都采用了https地址。FFmpeg若要访问https视频,就必须集成第三方的openssl库,但编译FFmpeg时却默认关闭了openssl。为了让App能够播放采用https的在线视 ...

FFmpeg开发笔记(十五)详解MediaMTX的推拉流

博主头像 ​MediaMTX是个开源的轻量级流媒体服务器,它的安装过程参见《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2.2 FFmpeg向网络推流”。MediaMTX下载后的压缩包包括可执行程序mediamtx.exe和配置文件mediamtx.yml,看起来非常简约,但它提供的流媒体服务一 ...

学废 C 语言——指针

博主头像 指针是 C 语言的基本类型之一。指针可以代表其它的变量,通过指针可以改变其它变量的内容。指针也有其它的用途。 ...

FFmpeg开发笔记(十四)FFmpeg音频重采样的缓存

博主头像 ​FFmpeg在很多地方都运用了缓存机制,比如《FFmpeg开发实战:从零基础到短视频上线》一书的“3.3.2 对视频流重新编码”介绍了编解码的数据缓存,不单是视频编码过程和视频解码过程有缓存,甚至连音频重采样都用到了缓存。 也就是说,重采样函数swr_convert一次只会输出指定长度的音频数据, ...

VSCode 开发C语言

博主头像 安装编译器 C 语言的编译器有很多,其中最常用的是 GCC,这里以安装 GCC 为例。 Windows 这里以 Windows 11 为例 官方下载地址:https://winlibs.com 网页中的这个位置,会有各个 GCC 版本的下载 这里为了学习数据结构与算法(考试平台 PTA 上的 GCC ...

FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx

博主头像 ​MP4是最常见的视频封装格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2.3 自行编译与安装FFmpeg”介绍了如何给FFmpeg集成x264和x265两个库,从而支持H.264和H.265两种标准的编解码。 视频的封装格式除了古老的MP4和ASF之外,还有较新的WebM格式, ...

枚举类型

博主头像 枚举类型 目录枚举类型1. 定义2. 枚举元素的值2.1 默认2.2 全部赋值2.3 部分赋值3. 枚举变量的定义方式3.1 先定义枚举类型,再定义枚举变量3.2 同时定义枚举类型和枚举变量3.3 忽略枚举名,直接定义枚举变量3.4 结合typedef关键字4. 总结 1. 定义 枚举是用来代表整数 ...

菜鸟记录:c语言实现PAT甲级1010--Radix

博主头像 很长时间没做,忙于考研和实习,久违的的拾起了算法。做了很长时间,其实总体思路还是很简单的,但满分不知道为什么就是到不了,又因为网上很多答案包括柳神的都是c++,无法参透,姑且只能这样了。 Given a pair of positive integers, for example, 6 and 11 ...

【飞控制作】从飞控制作学习项目经验

博主头像 1. 四旋翼无人机飞行原理:欠驱动系统 通过4个电机的转速,来控制飞行器X、Y、Z轴的加速度和角速度,实现悬停、垂直升降、俯仰、偏航、滚转(这里只对比较陌生的俯仰、偏偏行、滚转做示意图说明)。 组成 运动控制 运动控制主要参考:四旋翼无人机飞行原理及控制方法,你了解多少? 实物图 2. 无人机设计思 ...

FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr

博主头像 ​FFmpeg内置了aac音频格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“5.2.2 Linux环境集成mp3lame”又介绍了如何给FFmpeg集成mp3格式,常见的音频文件除了这两种之外,还有ogg和amr两种格式也较常用。其中ogg格式的编解码依赖于libogg和libvor ...

FFmpeg开发笔记(九)Linux交叉编译Android的x265库

博主头像 ​《FFmpeg开发实战:从零基础到短视频上线》一书的“12.1.2 交叉编译Android需要的so库”介绍了如何在Windows环境交叉编译Android所需FFmpeg的so库,前文又介绍了如何在Linux环境交叉编译Android所需FFmpeg的so库,接下来介绍如何在Linux环境交叉编 ...

ZCMU_1117

博主头像 /相当于看墙,投影之类的东西让我数多少个建筑物/ 解释感觉还不到位,以后再看看 先强调这不是我原创的,只是加了注释。找到原作者后会加链接。以及改变布局 #include <cstdlib> #include <cassert> #include <stack> using namespace std ...

C++结构体内幕揭秘:sizeof之谜与内存布局探秘

博主头像 概述:C++结构体的`sizeof`不总是等于每个成员的`sizeof`之和,因为对齐和填充影响了内存布局。未对齐的结构体可能存在间隙,而对齐的结构体会插入填充以保持对齐。通过示例展示了结构体的内存对齐和填充,以及如何使用模板元编程打印结构体成员的偏移量,深入理解内存布局。 在C++中,结构体的si ...

C++序列点解析:确保代码行为可控的关键步骤

博主头像 概述:在C++中,序列点是表达式中确保求值顺序的点。其缺失可能导致未定义行为。基础功能示例演示了自增运算符的序列点,而高级功能示例展示了函数调用的序列点,有助于避免不确定行为。在编写代码时遵循序列点规则是确保程序行为可预测的关键。 在C++中,序列点是在表达式中保证求值顺序的点。未定义的行为通常涉及 ...

C++局部变量的内存访问:小心技巧与安全边界

博主头像 概述:在C++中,尽管存在技巧在其范围之外访问局部变量的内存,但这是不安全和易导致未定义行为的做法。通过指针或动态内存分配可能违反变量的生命周期和作用域规则,应当避免使用以确保代码安全性。 在C++中,局部变量的生命周期和作用域限制了它们的访问范围,通常不应该在其范围之外访问其内存。然而,通过一些技 ...

<1···567···10>