C/C++
文章平均质量分 63
学习记录.
2241431065
记录.
展开
-
Linux DRM 相关知识
一、X Server 和 X Cilent1.X server:负责软硬件的管理,将输入的软硬件事件通过一定协议转发给X client,将输出的图形绘制在屏幕上。包括键盘、鼠标、手写板、显示器 (monitor) 、屏幕分辨率与色彩深度、显卡 (包含驱动程序) 与显示的字体等等,都是 X Server 管理的。2.X client:每个需要涉及到GUI的App,可以实例化为一个X client,X client主要是响应X server分发下来的事件,通过处理后,将待绘制的图像回传给X Server原创 2022-01-18 14:33:22 · 1789 阅读 · 0 评论 -
telnet实现远程连接
关于telnet我们可能还不是太熟悉,这是一个非常强大的命令,首先我们来看一下他的作用:它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。具体应该怎么做呢? wondows+R,输入cmd,进入dos窗口,输入telnet和目标IP这是怎么回事呢?很简单,因为我...转载 2022-01-14 11:25:21 · 9185 阅读 · 1 评论 -
像素读写进一个uint32中
这是computeshader中的写入下面是c++的读写第一张截图是写入,第二张是读取。转自:像素读写进一个uint32中_魁梧的抠脚大汉-CSDN博客转载 2022-01-13 16:28:54 · 90 阅读 · 0 评论 -
数据类型 -- uint32_t 类型
整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(char有点特别),如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的正整数数据,比如16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535。由于在计算机...转载 2022-01-13 16:22:40 · 18211 阅读 · 0 评论 -
C++实现屏幕截图的方法
第一步:建立Windows 32控制台控制程序 第二部:设置工程的属性如下:MFC的使用 --> 在共享 DLL 中使用 MFC stdafx.h #pragma once #define WIN32_LEAN_AND_MEAN // 从 Windows 头中排除极少使用的资料 #include <tchar.h> ScreenCapture.cpp:此文件主要是调用截屏方法 //ScreenCapture.cpp:定义控制台应用程序的...转载 2022-01-13 13:34:52 · 4712 阅读 · 0 评论 -
嵌入式 在开发板显示bmp图片、jpeg图片
嵌入式 在开发板显示bmp图片、jpeg图片一、简述记--在GEC6818开发板(800W*480H)显示24位的bmp图片、使用开源的jpeg库显示jpeg图片。代码:链接: https://pan.baidu.com/s/1G3jzvdncocDMRbwCvsmSlg 密码: gz6m二、效果 执行开始显示bmp图片,回车后显示jpg图片。三、工程结构四、源代码 display_bmp.c文件#...转载 2022-01-13 13:30:46 · 6395 阅读 · 0 评论 -
互斥量std::mutex
C++11中提供了std::mutex互斥量,共包含四种类型:std::mutex:最基本的mutex类。 std::recursive_mutex:递归mutex类,能多次锁定而不死锁。 std::time_mutex:定时mutex类,可以锁定一定的时间。 std::recursive_timed_mutex:定时递归mutex类。另外,还提供了两种锁类型:std::lock_guard:方便线程对互斥量上锁。 std::unique_lock:方便线程对互斥量上锁,但提供了更好的上锁转载 2022-01-13 11:29:31 · 229 阅读 · 0 评论 -
C++命名空间 namespace的作用和使用解析
目录一、 为什么需要命名空间(问题提出)二、 什么是命名空间(解 决方案)三、 使用命名空间解决名字冲突(使用指南)四、 使用命名空间成员的方法1 、使用命名空间别名2、使用using命名空间成员名五、 无名的命名空间六、标准命名空间std七、 使用早期的函数库1、用C语言的传统方法2、用C++的新方法一、 为什么需要命名空间(问题提出)命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中 常见的同名冲突。在C语言...转载 2022-01-13 11:16:28 · 1132 阅读 · 0 评论 -
C/C++中的NULL与nullptr
C中的NULL在C语言中我们将NULL用作空指针之用,NULL在C语言中的定义如下:#define NULL ((void *)0)可以看到,C语言中NULL是一个void*指针,我们常用其来对指针变量进行初始化赋值或者作为返回类型为指针的函数的返回值(如函数执行失败时)等等。C++中的NULL在C++中,NULL的定义如下:/* Define NULL pointer value */#ifndef NULL #ifdef __cplusplus转载 2022-01-13 10:38:51 · 807 阅读 · 0 评论 -
extern “C”的作用详解
extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。这个功能十分有用处,因为在C++出现以前,很多代码都是C语言写的,而且很底层的库也是C语言写的,为了更好的支...转载 2022-01-13 10:34:22 · 2237 阅读 · 0 评论 -
获取窗口:场景图已经在使用中
I tried the code shown here:How to take ScreenShot Qt/QML我尝试了这里显示的代码:如何截屏Qt/QMLOn execution I am getting the error written in the title.在执行过程中,我将在标题中写入错误。My main.cpp is:我的主cpp是:#include <QGuiApplication>#include <QQmlApplicationEngine&.转载 2022-01-13 09:51:29 · 113 阅读 · 0 评论 -
C++中#if #ifdef 的作用
一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。条件编译命令最常见的形式为:#ifdef 标识符程序段1#else程序段2#endif它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。其中#else部分也可以没有,即:...转载 2022-01-12 14:03:40 · 856 阅读 · 0 评论 -
c语言中uint32和uint32_t区别
比如uint32 a;uint32_t ;uint32_t是C/C++ 标准中定义的类型。//包含以下三个头文件中任意一个,就可以保证使用uint32_t类型<inttypes.h> <stdint.h><cstdint>而uint32是 某些 编译器定义的别名,以方便使用。类似: typedef uint32_t uint32uint32_t 比 uint32的可移植性更好 。...原创 2022-01-12 13:45:23 · 7165 阅读 · 0 评论 -
Notepad++快捷键及使用技巧
常用快捷键:CTRL+Q 注释/取消注释用Notepad++写代码,要是有一些重复的代码想copy一下,还真不容易,又得动用鼠标,巨烦人。。。。有木有简单的方法呢,确实还是有的不过也不算太好用。主要是应用键盘上的 Home 键 和 End 键。鼠标光标停留在一行的某处,按 Home 键光标会跳到行首,按End键光标会跳到行尾。鼠标光标停留在行尾,按 Shift + Home 选中一行。鼠标光标停留在行首,按 Shift + End 选中一行。鼠标光标停留在类中某处,按 Shift + P转载 2022-01-12 13:37:34 · 6698 阅读 · 0 评论 -
Linux下C语言实现LCD屏幕截图
一、概述最近看到网上有人问怎么用C语言实现屏幕截图,刚好自己也在研究Linux驱动,于是花了半天时间把Linux的FrameBuffer驱动看懂了个七八,接着就动手写了个LCD屏幕截图的应用程序。 一些说明:1. 板子LCD的分辨率为480x272,像素格式为RGB565。2. 程序首先获取LCD的一些参数,然后将获取到的一帧数据转换为RGB24格式,最后用jpeglib库压缩为jpg格式的图片。 3. 在嵌入式Linux的板子上测试通过...转载 2022-01-12 13:31:42 · 696 阅读 · 2 评论 -
FB的功能是什么?其优点是什么?
FB(Function Block)不同于FC块的是它带有一个存储区,即有一个局部数据块被分配给FB,这个数据块称为背景数据块(lnstance Data Block)。当调用FB时,必须指定背景数据块的号码,该数据块将自动打开。背景数据块可以保存静态变量,故静态充数量只能用于FB中,并在其变量声明表中定义。当FB退出时,静态变量仍然保持。当FB被调用时,实际参数的值被存储在它的背景数据块中。如果在调用块时,没有实际参数分配给形式参数,则在程序执行中将采用上一次存储在背景数据块中的参数值。每转载 2022-01-12 10:45:12 · 2469 阅读 · 0 评论 -
memset 简介
memset是计算机中C/C++语言初始化函数。作用是将某一块内存中的内容全部设置为指定的值, 这个函数通常为新申请的内存做初始化工作。目录一 函数介绍二常见错误三 常见问题一 函数介绍void *memset(void *s, int ch,size_tn);函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体...转载 2022-01-12 10:26:53 · 814 阅读 · 0 评论 -
Broadcom Nexus学习 (二) Audio
概念1:Audio Playback channel:Sam感觉,Audio Playback channel可以将之理解为“一个可以解析并播放PCM数据的硬件单元”。既然是硬件,那就可以打开,关闭,设置,并向其中填充(PCM)数据.1.1:Open Audio Playback channel:打开硬件。NEXUS_AudioPlaybackHandle handle;handle = NEXUS_AudioPlayback_Open(0, NULL);if ( NULL =转载 2022-01-11 16:35:29 · 178 阅读 · 0 评论 -
Broadcom Nexus学习 (一) Graphics
0. Broadcom Nexus介绍:Nexus是Broadcom提供的一套开发中间件,以标准API形式为Digital TV 和Set-Top boxes上层程序提供标准接口,它将不同的底层与上层开发隔绝开来,以达到上层开发与底层无关的目的。所有Interface的用法和思路基本上是一致的。最先接触到的Nexus模块就是 Graphics.1. Nexus Platform 接口和初始化:Nexus有个API初始化各个模块以及硬件(NEXUS_Platform_Init())。应用程序也可以转载 2022-01-11 16:27:16 · 278 阅读 · 0 评论 -
curl 介绍
cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。一 工具简介cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl。cURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP.转载 2022-01-11 15:58:19 · 436 阅读 · 0 评论 -
bitdepth
BITDEPTH由用于定义每个像素的位数决定。位深度越大,可以表示的色调(灰度或颜色)数就越多。数字图像可以以黑白(黑白)、灰度或彩色形式生成。双位图像每个像素由 1 组像素表示,像素可以表示两种色调(通常为黑色和白色),使用值 0 表示黑色,1 表示白色,反之亦然。灰度图像由多个信息位表示的像素组成,通常范围为 2 到 8 位或更多。例:在 2 位映像中,有四种可能的组合:00、01、10 和 11。如果"00"表示黑色,"11"表示白色,则"01"等于深灰色,"10"等于浅灰色。位深...翻译 2022-01-07 16:14:19 · 343 阅读 · 0 评论 -
C语言指针讲解
前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以我总结了一下其原则:从变量名处起,根据运算符优先级结合,一步一步分析.下面让我们先从简单的类型开始慢慢分析吧:int p; //这是一个普通的整型变量 int *p; //首先从P 处开始,先与*结合,所以说明P 是一个指针,然后再与int 结合,说明指针所指向的内...转载 2021-12-23 13:28:55 · 259 阅读 · 0 评论 -
C语言面试题
#include <stdio.h>#include <stdlib.h>int main(){ int *pint; char *p = (char*)malloc(16*sizeof(char)); int i = 0; for(i=0; i<16; i++) { *p = i; p++; } printf("the answer is: 0x%x\n", *(++pint));原创 2021-07-27 09:20:57 · 121 阅读 · 0 评论 -
C语言编程规范
一、排版1、程序块缩进程序块要采用缩进风格编写,缩进的空格数为4个。在编码之前对相关IDE进行设置,如若没有缩进设置,需要在编写完代码后使用相关工具格式化代码。2、代码群落加空格相对独立的程序块之间、变量说明之后必须加空行。3、一行不要超过80列较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。循环、判断等语句中若有较长的表达式或语句,则要进行适当的划分,长表达式要在低优先级操作符处分新行,操作符放原创 2021-07-26 17:09:21 · 1148 阅读 · 0 评论 -
C语言知识总结
1.计算机数据存储:{ 二进制 八进制 十进制 十六进制 基数: 位权: 二进制: 基数:2 0,1 二进制转十进制:加权 十进制转二进制:除二取余倒叙法 八进制:{ 基数:8 0-7 前导:0 0123 八进制转十进制:加权 八进制转而进制: 一位八进制用3位二进制表示 0123-001 010 011(从后往前,缺位用0补充)} 十进制:10 0-9十六进制:{ 基数:16 0-15 -->0-f 10:A/a 11原创 2021-07-26 17:08:11 · 282 阅读 · 0 评论 -
2021C语言全套教程
资源太大了,不好上传。链接:https://pan.baidu.com/s/1HLhnmXR5rCEWhKr4CUOgKw提取码:gdef原创 2021-07-22 16:20:46 · 1204 阅读 · 0 评论 -
VSCode 安装扩展
1.界面中直接安装2.先访问 vscode 插件市场(https://marketplace.visualstudio.com)选择需要的扩展,点击右边的Download Extension下载另保存到自己电脑存放vscode扩展的bin文件夹中从界面中选择从VSIX安装这样就安装好啦...原创 2021-03-13 09:42:34 · 1134 阅读 · 0 评论 -
简单C语言的一个面试题
#include <stdio.h>#define SWAP(T,A,B){ T temp; temp = A; A = B; B = temp;}int main(){ int arr[] = {3,4,5,6,7,8,9}; int j; int i = 2; SWAP(int, i, arr[i]); for(j=0; j<7; j++) printf("%d ", arr[j]);原创 2021-07-22 10:13:18 · 75 阅读 · 0 评论 -
宏定义的大括号以及斜杠
今天写到一个题目:#include <stdio.h>#define SWAP(T,A,B){\ T temp;\ temp = A;\ A = B;\ B = temp;\}int main(){ int arr[] = {3,4,5,6,7,8,9}; int j; int i = 2; SWAP(int, i, arr[i]); for(j=0; j<7; j++) printf("原创 2021-07-22 09:54:35 · 2383 阅读 · 1 评论 -
常见字符串函数介绍
原型:strcpy(char destination[], const char source[]);功能:将字符串source拷贝到字符串destination中代码:char *strcpy(char *strDestination,const char *strSource){ assert(strDestination!=NULL && strSource!=NULL); char *strD=strDestination; while ((*strD++=*str.原创 2021-07-21 19:26:32 · 292 阅读 · 0 评论