自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林世霖的技术博客

专注编程技术普及20年

  • 博客(152)
  • 资源 (11)
  • 收藏
  • 关注

原创 C语言中的二等公民在C++是如何翻身的?

在原来的C语言中,enum、const、auto等关键字都不尽完善,并没有发挥应有的功能,是二等公民,而随着时间的推移,在C++中他们都被完善了,有些还被赋予了新的功能,担当起了重要的角色。相反,原本在成员中称王称霸的一等公民,比如macro宏,在C++中成了贱民,惨遭抛弃。下面我们来仔细看看各种情况。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lqbcFCV9-1629021449406)(https://p3-juejin.byteimg.com/tos-cn-i-.

2021-08-15 17:58:33 297

原创 Linux动态库的参数化

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-08-10 23:36:24 272

原创 Linux-FrameBuffer双缓冲机制显示图像

1. 液晶屏的基本概念像素:屏幕上显示颜色的最小单位,英文叫 pixel。注意,位图(如jpg、bmp等格式的常见图片)也是由一个个的像素点构成的,跟屏幕的像素点的概念一样。原理上讲,将一张位图显示到屏幕上,就是将图片上的像素点一个个复制到屏幕像素点上。分辨率:宽、高两个维度上的像素点数目。分辨率越高,所需要的显存越大。色深:每个像素所对应的内存字节数,一般有8位、16位、24位或32位GEC6818开发板的屏幕的色深是32位的32位色深的屏幕一般被称为真彩屏,或16

2021-04-30 13:31:48 4404 3

原创 数据结构基本概念

1. 基本概念数据结构是一门研究如何有效组织数据,并提高数据处理效率的学科。通过研究各种数据内部的逻辑关系,使用某种特定的存储形式,并在此基础上对数据实施各种操作,这些工作被称为称为广义上的算法。逻辑结构指数据之间的内在关系。通常有集合、线性表、树、图等常见的逻辑结构。逻辑结构是数据之间本身的属性,跟我们怎么处理它们无关。存储形式数据的存储方式。比如顺序存储、链式存储等。不同的存储形式对最终数据的处理效率通常有很大的影响。逻辑结构与存储形式并无必然联系。2. 算法分

2021-03-12 16:44:53 195

原创 2020-10-14

2020-10-14 10:48:31 288

原创 教案01 概述

基本概念逻辑结构所处理的对象的内在逻辑特性。比如线性表、树、图等。存储方式数据的存储手段。比如顺序存储、链式存储、散列存储等。算法基于某种的存储方式,对特定的逻辑结构的数据对象实施的操作集合。比如对链式存储的线性表,实施诸如初始化、插入、删除、销毁等操作。逻辑结构逻辑结构指的是数据之间的内在相互关系,常见的逻辑结构有4种,分别是:集合集合中的数据从属于某一类别,但彼此之间没有关系。线性表线性表是一种严格的数学定义,其表述是:任何一个节点有且仅有一个直接前驱(第一个

2020-10-13 17:21:12 210

原创 原创 | 函数 scanf 前世今生

原创 | 函数 scanf 前世今生

2018-07-11 17:18:37 806

原创 高清YUV极速转码,了解一下?

以上文章,摘自作者微信公众号“秘籍酷”,欢迎关注:

2018-06-14 12:48:54 983

原创 C++动态内存管理思想和杀器

摘自微信公众号:秘籍酷点击阅读原文摘自微信公众号:秘籍酷点击阅读原文

2018-04-30 18:12:45 419

原创 关于女神SQLite的疑惑(2)

2017-12-29 15:54:57 681 2

原创 串口编程入门

嵌入式系统中,诸多设备都可以通过串口来控制,比如WiFi、蓝牙、RFID等等,因此在嵌入式设备中使用串口就显得特别重要。首先,有几个概念简单澄清一下。RS232、RS485和TTL指的是电气电平标准。一般而言,TTL使用0V表示低电平,+5V表示高电平。RS232使用负逻辑电平,即+3V ~ +15V表示低电平,-3V ~ -15V表

2017-12-27 23:14:15 857

原创 关于女神SQLite的疑惑(1)

SQLite的大名就不做广告了,反正嵌入式设备、手机等领域中,凡是用到数据库的地方她几乎都是主角。这个系列的推文,就来总结日常使用时我们都可能会遇到一些问题。1. 问:怎么创建一个自动递增的域?1. 答:对于这个问题,简短的回答是:任何一个被声明为 INTEGER PRIMARY KEY 的域都将是自动递增的。而更完整的回答是

2017-12-27 23:10:57 517

原创 一口气搞懂《虚函数和纯虚函数》

学习C++的多态性,你必然听过虚函数的概念,你必然知道有关她的种种语法,但你未必了解她为什么要那样做,未必了解她种种行为背后的所思所想。深知你不想在流于表面语法上的蜻蜓点水似是而非,今天我们就一起来揭开挡在你和虚函数(女神)之间的这一层窗户纸。首先,我们要搞清楚女神的所作所为,即语法规范。然后再去探究她背后的逻辑道理。她的语法说来也不复杂,概括起来就这么几条

2017-12-19 22:48:59 1361 2

原创 教你如何优雅地拒绝自作多情的C++

一个含义中立的行为,放在不同的人眼里,就有不一样的解释。就像你帮学妹打开水,如果她喜欢你,那你就是冬天里温柔贴心的暖男,如果她不喜欢你,那你就是路边上自作多情的逗比。类比到C++中,他会你不知情的情况下,自动为你准备好①无参构造函数、②空析构函数、③复制构造函数、④赋值操作符函数等一系列基本类成员方法。你说他这是一种温柔贴心呢,还是一种自作多情呢?这

2017-12-16 11:49:18 597

原创 C++中吸取C的二等公民

在原来的C语言中,enum、const、auto等关键字都不尽完善,并没有发挥应有的功能,是二等公民,而随着时间的推移,在C++中他们都被完善了,有些还被赋予了新的功能,担当起了重要的角色。相反,原本在成员中称王称霸的一等公民,比如macro宏,在C++中成了贱民,惨遭抛弃。具体内容,请点击下面链接 阅读原文http://mp.weixin.qq.com/s?__biz=MzAxNzY

2017-12-15 11:29:10 437

原创 深入浅出Linux环境编程(进程基础+IPC+POSIX+线程同步与互斥)-林世霖-专题视频课程...

全面系统地介绍Linux下的编程细节,从基本的进程概念,到IPC机制,到POSIX多线程并发,到同步互斥,全面掌握Linux环境的编程技巧。拒绝照念PPT,拒绝只讲理论,手工从零开始敲代码(极具观赏性),每个知识点都实打实编程实战,直接编码验证,每篇代码都经仔细打磨,能全面反映所讲逻辑,保证听者听得明白听得清澈。本课程只讲干货不含鸡汤,林老师亲自烹制请放心使用。...

2017-05-22 12:02:18 691

原创 深入浅出C语言视频教程(配套完整习题 + 源代码)-林世霖-专题视频课程

深入浅出C语言编程视频培训课程从C语言入门开始学习,C语言无敌猎手林世霖老师手把手带你猎杀Linux下C编程技术,手握尖刀准备战斗!以下特色绝对让你留下膝盖:1,涵盖标准C语言开发核心技术,并且覆盖GNU扩展语法,图解一切你能遇到的障碍和关卡,助你破关杀怪,一路绿灯到底!2,素描板彩色板书,拒绝枯燥裸讲,全程图文并茂3,加入2千人超级Q群260492823随时提问答疑...

2017-03-29 16:57:42 1253

原创 听说今天是个节

“哇耶!今天是六一节!”“工作有着落了吗?”“…… 虽然大学快毕业,但他们都说我还像个孩子”“工作有着落了吗?”“…… 我小时候,梦想着有一天能住进迪士尼”“工作有着落了吗?”“滚粗!大六一的你不能说点别的吗?”“今年贵庚?”“……”一般的套路,今天的微信推送短文,画风应该是如下这样的。

2016-06-01 10:18:17 949 2

原创 C语言(如何优雅地使用字符串)

C语言中使用字符串有两种方式,用char型指针、用char型数组。他们有什么区别和联系? 且听我一一道来。C语言表示字符串的两种方式,look:char  *s1 = "abcde";  // s1 是指针char s2[] = "uvxyz";  // s2 是数组首先,任何常量都将被放置到一个固定的内存区域,叫 .ro

2016-05-30 11:26:05 2021

原创 C语言(数据类型)

编程语言中的数据类型,那是一个刚开始接触代码的初学者会学习的第一个概念,但是我们对这个概念真的理解彻底吗?我看不一定。请看下面这段会被实验室大神,或者技术装逼犯看不起的定义语句:int sum;也难怪,这么简单的定义语句,实在没什么好讲的,即便是对一个零基础小白,解释完这条语句也是三言两语的事儿,不信你听听:“定义了一

2016-05-27 11:17:19 701

原创 算法(让人着迷的傅里叶分析)

世界是复杂的,世界又是简单的。一切复杂的事物,背后总有最简单的元素。一切计算机软件的基本运算单元都是0和1,一切亚原子粒子本质都是超弦的不同震荡模式,而一切波形,竟然都可由最简单正弦波叠加而成!这就是理工领域最重要的基本算法——傅里叶分析。一般而言,说到傅里叶级数和傅里叶变换,似乎都会觉得比较高深莫测,或者是枯燥乏味,但是,这个数学工具是迄今为止人类科技进步的一把最重要最锋利的尖刀

2016-05-24 11:49:09 4480

原创 Linux基础(烧写系统)

某些情况下,我们可能会因为间歇性的脑残和手贱导致把粤嵌开发板GEC210的系统给搞死,比如在某神秘原因的驱使下,众目睽睽地删掉系统的关键性目录,然后目光呆滞地面对被格掉的板子,束手无策,默默流泪。今天我就是来挽救这些失足青年的。首先,面对kernel或者文件系统出问题的板子,我们有两种办法来挽救,第一是使用SD卡,第二是使用USB接口+fastboo

2016-05-22 13:57:09 1935

原创 C语言(调试绝活)

众所周知,写一段稍微复杂的代码,就会马上面临调试的需要,而最基本的检测程序运行情况的调试技巧,就是在代码中安插许多 “警哨” 来帮助我们监视随时可能发生的异常。技术上这没啥好说的,只是对于一个代码洁癖晚期患者来说,怎样写得干净又漂亮,是一件比写代码本身更重要的事情。先来一段反面教材看看:像上述程序那样的话,将不

2016-05-20 09:53:36 1677

转载 这四个原则能让你变得幸运

你一定见到过这样的人,学业有成,职场情场都春风得意,好像所有的运气他都占了。为什么有些人看起来就那么幸运,有些人就少了一些运气呢?公众号“千古刘传”有篇文章说,幸运是可以像技能一样学习的,然后总结了四个原因。第一点,你要有广泛的知识领域。因为大部分幸运都是在特定的专业领域发生的。假设有这么一个人,他PPT做得很好,在做PPT这件事儿上,肯定比那些不会做的

2016-05-19 09:10:52 985

原创 Linux基础(FTP服务搭建)

昨天有两个同学在QQ(2437231462)上问我,说虚拟机的共享文件夹突然不能用了,找不到/mnt/hgfs了怎么办?我当时的回答是使用samba或者ftp来替代共享文件夹,同学又问FTP怎么搞?想到这个问题也许不止一个人会遇到,干脆就写篇短文回答一下。在Ubuntu下搭建FTP服务其实很简单,废话不讲,直接来步骤。第一,确保你的Ubunt

2016-05-18 10:04:11 988

原创 Shell命令(readelf)

今天翻翻老本,翻到一款上天入地的神器 —— readelf,据说用它可以拂开云雾,抽丝剥茧,去伪存真,深入其里。它就像一把精工刀,专用于对ELF格式文件进行外科手术般的解剖,今天我们来见识见识。先来看看什么是ELF格式文件:在Linux中,ELF是标准的可执行文件格式,其全称是Executable and Linkable Format。 换句话说:

2016-05-16 17:59:38 921

原创 Shell脚本(自动填充函数模板)

最近很多同学在看我视频教程的时候,对 vii 这货很好奇,vii 是 vi 的亲戚吗?为什么用它新创建一个新程序能自动填充程序框架代码呢? 今天就来扒一扒这货。其实,vii 是我写的一个脚本,跟 vi 没半毛钱关系,只不过借用一下这个名字而已。那这个脚本长什么样呢?look:下面听我详细为你解析上面的代码,来看第1行:#!/bin/bash

2016-05-10 10:28:06 2647

原创 Linux基础(vi,我的最爱)

很多时候我们需要在多个源程序之间实现函数、宏定义、外部变量等的跳转查询,甚至有时候需要到内核或库源代码里窥视他们真面目,这对于windows的各种IDE而言都是基本功能,但是我最爱的vi呢?可不可以提供这个趁手的功能呢?vi是我的最爱,不仅因为他的高效,还因为他支持插件,今天只讲一款,叫ctag,用来干嘛?当然就是帮我们做代码定义跳转啦。废话少讲,来搞搞:第一,

2016-05-09 20:00:08 1462

原创 C语言(二维数组)

有同学在面对二维数组的时候,常常会犯浑。尤其是使用函数传参的时候,有老师讲到一维数组传参后就等价于一级指针,部分同学举一反三自学成才,想当然地认为二维数组传参后就等价于二级指针,这是错误的。假如,有如下代码:int a[2][3]; // 一个二维数组function(a); // 将二维数组传参给一个函数 上述代码中,就是将一个二维数组传递给一个函

2016-05-05 10:34:06 910

原创 C语言(数组啥时候变指针)

今天不讨论高大上的东西,真就只说一个小知识点:数组啥时候变指针? 答案是:除了初始化和sizeof之外,一律会变指针。以一个简单的int型数组为例:int a[5] = {1, 2, 3, 4, 5};那么,当我们在程序中使用a时,它的真面目如下:int a[5] = {1, 2, 3, 4, 5}

2016-05-03 09:20:35 1125

原创 面向对象C++(从生物学理解继承 )

继承是面向对象编程的一个最基本的概念,我们也常常会使用父子关系来比喻这个逻辑,但需要指出的是,初学者必须要充分理解这个比喻的内涵:这里的继承指的是基因的继承,而不是财产的继承。基因的继承是无法拒绝的,而财产是可以选择的。基因实际上是一些性状的抽象,越往上游靠近祖先,性状越简单,越往下游靠近个体,性状越复杂。面向对象语言中,都有基类的概念,基类就像是最原始的生命体,只有最简单的蛋

2016-05-01 12:20:34 688

原创 Linux基础(软件安装)

在Linux中,安装软件通常有三种途径:既可以使用安装包,也可以借助于APT,还可以从源码安装。他们各有特点,操作方式也不尽相同。Linux下的软件既可以是软件安装包,就像windows一样,也可以是源码包。而对于安装包而言,不同的Linux发行版所使用的格式不一样,比如RedHat使用的是yum格式安装包,Ubuntu则使用deb格式以Ubuntu为例,安

2016-04-28 08:08:08 707

原创 内核链表

“你,听过双向链表吗?”“恩恩,最简单的线性数据组织……” “装逼,知道它的优缺点吗” “恩恩,插入删除快速,遍历比较慢,而且……”“行了,知道内核链表吗”“恩恩,传统链表没有实现逻辑分离,因此操作接口……”“喂!你真的是一个,应届生?”“恩恩。”“你,明天过来找人事部的张小姐签……”“签你妹!每次打断我说话,滚!”“

2016-04-26 09:13:00 686

原创 Linux编程(文件描述符)

在Linux编程世界中,不可能没听过文件描述符这个概念,我们操纵任何设备的时候,几乎都要通过它来达成的,它究竟是何方神圣呢?随我描述符科学家来一探究竟。首先,我们在Linux下打开文件用的都是如下代码:int fd = open(... ...);当然有同学可能会说,有时也可以用fopen(),但是fopen()只是标

2016-04-23 06:51:45 486

原创 Shell脚本(最坑爹的括号)

写过Sell脚本的同学都应该有这样的感触:偶尔多写了或者少写了一个空格,就会报出奇奇怪怪的错误,由于空格是不可见字符,因此排查此类错误最靠谱的方式是,不要犯这个错误。Shell中有一个最基本的命令叫test,它可以测试数值、测试字符串和测试文件属性,是用得最多的命令,look:当我们在执行分支语句、循环语句的时候,一般都离不开它,比如下面的脚本

2016-04-22 11:07:26 1762

原创 Linux基础(文件类型)

Linux下一切(除网卡)皆文件的概念深入人心,那么世界万物在Linux系统中被分成多少种文件呢?他们有什么特点呢?Linux下除网卡外,任何东西都被归类为以下七种文件之一:块设备文件(block),简称 b字符设备文件(character),简称 c本地套接字(socket),简称 s符号链接文件(linkage

2016-04-15 07:51:37 686

原创 Linux基础(Ubuntu网络配置)

最近在QQ经常听到有人喊救命:快来人啊!不得了啦!Ubuntu连不上网啊!今天,我代表月亮,来消灭……哦不!来拯救亿万黎民于水火!我是谁?我就是传说中的Ubuntu科学家。Ubuntu是一个依赖于网络的系统,没有网何止我们活不了,他也活不下去。那在虚拟机里的Ubuntu要是连不上网了,该怎么办呢?首先明确一下,网络的问题是复杂的,并不能保证一剂猛药直戳病灶,立

2016-04-14 09:08:32 19765

原创 C语言(一个真实的故事)

曾经有一个简单又不失牛逼的小技巧,老师教的时候我没有珍惜,等到同事因为用了这个技巧升任总工才后悔莫及,如果上天再给我一次机会,我会对老师说:我要学!如果非要定个学习时间,我希望是:立马! 拓展: 这是一个真实的故事。 一个以往的学生就职东莞易事特,一家做新能源的上市公司,去年年底升任其部门总工(软件开发总工程师)工资升到1.2w,我说你工作半年这么N

2016-04-13 10:19:31 5276

原创 漫谈C语言指针入门

天啊!为什么你学了3年还是无法正确理解指针地址的概念?别扯淡你一看C语言就懵逼,琢磨LOL英雄属性你挺6啊!拓展:有人一提到指针地址,就会一脸懵逼,因为在他们的脑海中,指针的概念始终建立不起来,总感觉自己跟指针之间隔着一层迷雾,那我现在就用1分钟的时间,拨开你们之间的这层迷雾!首先你要知道,计算机编程世界中的任何东西,都是一块块的内存!然后,指针是什么?那当然是一

2016-04-06 10:26:36 48088 40

原创 C语言(思维陷阱)

编程开发的初学者若能掌握“机器思维”的技巧往往能事半功倍,但熟练掌握该技能后却要避免陷入思维陷阱。 拓展:所谓机器思维,就是贴近计算机运行的原理,充分利用计算机的优势。电脑最大的特点就是效率高,最擅长的事情就是循环操作,因此我们能使用循环来处理很多事情。但是一旦形成这样的思维习惯,也许就会陷入思维陷阱了。正确的姿势是:对算法时刻保持一定的数学敏感度,尽可能地将数学融

2016-04-05 07:46:53 932

最新版本Node.js 15.4.0.pkg

Node.js最新版,从墙外搞过来的,方便国内的朋友开发和学习Node.js最新版,从墙外搞过来的,方便国内的朋友开发和学习

2020-12-17

触摸板的库源代码

触摸板的优化算法库源代码,可在linux下编译,通用于各个平台

2016-10-24

jpegsrc.v9a.tar.gz

jpegsrc.v9a.tar.gz

2015-05-15

纯C语言+libalsa实现最简单录音程序

纯C语言+libalsa实现最简单录音程序

2014-12-08

纯C语言+libjpeg实现最简单jpeg图片解码显示程序

纯C语言+libjpeg实现最简单jpeg图片解码显示程序

2014-12-08

taglist.zip

Taglist是vim的一个插件,可以方便地在终端侧边显示出当前程序所有的函数、宏等信息,支持鼠标双击跳转,对于规模比较大的代码而言,这是一个非常实用功能。

2013-11-10

arm-linux-gcc-4.4.3.tar.gz

针对ARM和LINUX平台的交叉工具链,下载时请注意版本

2012-12-11

移植uboot1.3.4.pdf

详细描述uboot1.3.4的移植过程,有具体的实验步骤,按照步骤可以傻瓜式完成uboot1.3.4的ARM平台移植。

2012-12-11

ads_keygen多版本注册机.7z

ads_keygen多版本注册机.7z

2012-05-16

串口工具putty.ext

串口工具,可以实现串口信息的显示,远程连接ssh服务等等等很多很多很好的服务的

2012-05-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除