自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hui辉的博客

积水成渊,蛟龙生焉。

  • 博客(26)
  • 收藏
  • 关注

转载 网络爬虫(一):抓取网页的含义和URL基本构成

一、网络爬虫的定义网络爬虫,即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。 网络蜘蛛是通过网页的链接地址来寻找网页的。从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就

2016-11-28 17:33:18 875

原创 一道让我踏进坑的字符串题目

int main(int argc, char const *argv[]) { char new[]="\0"; printf("%d %d\n", sizeof(new),strlen(new)); return 0; }答案2 0 我的预估是1 0.错误 一直知道字符串末尾要添加‘\0’,但当字符串本身就含有‘\0’时,我恍惚

2016-10-13 15:55:59 315

转载 用文件IO而不是stdio输入输出

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。这段代码是我刚写的,不是什么技巧性很强的东西,完全都是基础。上午线性代数讲了矩阵乘法,下午没课,寻思着自己也好久没写程序了,不如就拿矩阵乘法开刀,熟悉一下C语言…顺便也可以用来做线性代数的作业…=_=恩,代码有些长,我只是想多回顾一下以前的知识…这段代码用到了函数、指向指针的指针、函数

2016-07-17 17:12:18 394

原创 C语言-位域小问

今天看到位域,觉得挺神奇,但是里面其实有很多坑。有点类似前面字节对齐的地方,但感觉又不全是。 先给给出几道题。1这个是结构体#include "stdio.h"#include "stdlib.h"int main(int argc, char const *argv[]){typedef struct bitzone{ char a; char b; char

2016-06-02 18:44:41 276

转载 一套帮助你理解C语言的测试题(转)

在这个网站(http://stevenkobes.com/ctest.html)上发现一套很有趣的C语言测试题,如果你招聘C语言相关开发人员,或者正在学习C语言,很值得做一做。如果没有做,下面内容暂时不要看,最好自己先完成一遍。(目前我进不去这个网站)OK,假设你做的答案没有完全正确,那你可以继续看下去了,否则,后面内容对你来说就是小菜一碟,不值得看。第一题:

2016-05-06 16:02:06 316

原创 localtime和gmtime函数使用

#include <stdio.h>#include <stdlib.h>#include <time.h>int main(void){ time_t timep; struct tm *tm_local,*tm_gmt; //get calendar time time(&timep); printf("%d\n",timep ); //

2016-04-17 12:38:47 1685 1

原创 C++学习笔记

很久前就接触C++了,不过当时学的很浅,学校当时连容器都没讲,只讲了类和输入输出流,后来也看过C++方面的书,因为很多和C相通,多少基本原理都懂,不过上手较少,平时都是用的C编,只是偶尔C中不小心写出来了C++的规则(只有一次,因为函数参数形参不想用二级指针,用了指针的应用),死活调都是错误,用G++才通过。现在重新捡起C++,虽然个人感觉纯C确实很好,了解底层,嵌入式开发。但是在找工作浪潮中就业面

2016-04-17 07:14:25 336

原创 10个C语言常见未定义与执行结果

今天在YouTube看到一个讲C的未定义(C语言没规定,由编译器和机器自由发挥)的视频,很多都是比较有意思的问题,摘录了一下。 视频地址https://www.youtube.com/watch?v=z-RJK-NBKXE 我用ipv6看的,改了hosts,所以才翻过去了。视频里看到的编译器 clang gcc icc 这些在不同的编译器下是不同的结果,我本来准备在线编译,然后看看各个不同编

2016-04-14 22:56:35 2012

转载 研究C语言的参数执行顺序

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。今天看以前做过的题,发现一段代码,引起了我的研究兴趣。。。#include <stdio.h>main(){int i=9;printf("%d %d %d\n",++i,i,--i);printf("%d %d %d\n",i++,i,i--);}这段程序的结果是什么?可

2016-04-13 10:40:28 482

原创 C语言(undefined behavior)未定义-序

前面有几篇写得一些简单的错误,其实很多都来自未定义动作,也就是C99标准中没有规定,编译器也不知道会发生什么。如果想要精确了解看C99文档最好,但是全部是英文,并且篇幅较大,我专业英文方面可能不太熟练,速度会太慢,所以就准备查一些未定义,结合一下文档,然后进行归整一下,这篇是序,特开此文,以待后面添加。

2016-04-12 19:32:44 595

原创 C各种类型变量所占字节

首先说我的电脑 win7 64 位 编译器gcc 5.2.0 (32位64为兼容的)#include <stdio.h>#include <stdlib.h>int main(int argc, char const *argv[]){ printf("the byte of char is %d\n", sizeof(char)); printf("the

2016-04-08 12:29:23 1408

原创 U盘装系统win7

去年有个时间电脑出问题,没有系统盘,就自己用U盘做启动盘装系统,然而但是因为分区格式的问题,在上面花费了很多时间,也算对系统有所了解,就浅显的介绍一下如何装系统,以及一些基础知识。(没有图片和视频)基本原理:U盘装系统分两种, 1:一种是把ISO文件写入U盘(是写入,不是复制,一般用ultroISO),然后U盘就变成光盘一样了,在BIOS中修改启动顺序把U盘改为第一顺序。然后就进入和光盘一样的安装

2016-04-07 23:58:17 741

原创 C语言—局部变量同名初始化问题

先看一段代码#include <stdio.h>#include <stdlib.h>int main(int argc, char const *argv[]){ void func2(void) { int a; printf("%d\n", a); } void func1(void) { int a=5

2016-04-07 18:07:07 594

原创 C语言-字节对齐

结构体中字节对齐#include <stdio.h>#include <stdlib.h>int main(int argc, char const *argv[]){ struct A { int a; char b; int c; char d; };//16 struct B {

2016-04-07 17:39:59 732

原创 C语言之路(易混淆点)

个人遇到的一些比较基础,但是很有意义的问题。1:负数取模 2:整形溢出(要掌握机器数原码补码反码) 3:指针内存分配易忘 4:字节对齐 5:类型转换(强制和自动) 6:

2016-04-06 22:51:42 474

原创 C指针错误(3)-链表的尾指针要赋值NULL

下面是建立一个链表和打印链表的函数 输入0为结束#include <stdio.h>#include <stdlib.h>struct ListNode { int val; struct ListNode *next;};struct ListNode* creat_list(){ struct ListNode *head=(struct ListNode *)

2016-03-30 21:57:58 1247

原创 数据结构和算法纲要

链表:单链表,双链表,循环链表 链表的基本数据类型 操作:创建 插入 删除 查找 遍历 翻转 判断环栈和队列:用链表实现 基本操作:进出树 二叉树 二叉搜索树 AVL树 红黑树 等 二叉树数据结构 创建 添加元素和删除元素 遍历(递归和非递归) BFS DFS AVL的四种旋转图 数据结构定义:邻接矩阵 邻接表 最小生成树 prim kru

2016-03-25 18:06:10 292

原创 C指针一个小错误(2)-返回值不能是局部变量的指针

下面是很简单的几个小事例 int *ret_int(void){ int p[] ={1,2,3,4};//或者int a=3; return p; //return &a;} 调用后将得不到数组值或者a值,成为野指针。(数组名就是数组地址,类似于指针,也不能做局部变量返回值)int *ret_int(void){ int *p =(int *)malloc(s

2016-03-21 12:49:50 352

原创 C指针一个简单的小错误(1)-内存分配

大家觉得下面这行代码可以运行不?#include <stdlib.h>#include <stdio.h>int main(int argc, char const *argv[]){ int *p; *p=6; printf("%d\n",*p); return 0;}能否得到正确答案。答案是不能的,因为只是定义了指针p,而没有对它指向的区域进行内存的分配,

2016-03-20 21:52:53 272

原创 二叉树的非递归前序遍历

二叉树的遍历有递归和非递归两种,递归的已经写过,就写了一下非递归的前序遍历。中序和后续整好了一起贴另一篇。二叉树遍历,节点位置一会移动了几次一会又回来了,进进出出,所以用栈比较适合。(我瞎说的,因为我看它们都是用栈,就用栈了,咳咳)话说,我C++倒是学过,但是很少用C++编,因为学得不好,C++细节太多了,也记不住。所以我用的c,但是呢,C标准自己也没看过,偶尔就编到C++的范围了(传参有时候不想用

2015-11-24 22:56:38 653

原创 gcc和gdb简单使用

读书笔记1 预处理in.c  out.igcc–E  b.c  –o  b.i  //让程序在预处理结束后停止编译过程 –E2编译 in.i  out.sgcc–S  b.i  –o  b.s3.汇编 in.s out.ogcc–c  b.s  –o b.o4链接 输入为.o和其他的代码文件和库文件gccb.o  –o b输出b就是一个可执行文件

2015-11-24 17:52:48 660

原创 二叉树创建和遍历

#include <stdio.h>#include <stdlib.h>// 带返回值创建二叉树 最简单方法//节点数据结构struct bs_node{ int value; struct bs_node *left; struct bs_node *right;};typedef struct bs_node tree;// tree *head,*p,

2015-11-23 17:15:38 326

转载 Linux驱动修炼之道-SPI驱动框架源码分析(下)

来自:http://blog.youkuaiyun.com/woshixingaaa/article/details/6574224这篇文档主要介绍spi数据传输过程。当应用层要向设备传输数据的时候,会通过ioctl向设备驱动发送传输数据的命令。如图,向SPI从设备发送读写命令,实际的读写操作还是调用了主机控制器驱动的数据传输函数。transfer函数用于spi的IO传输。但是,tra

2015-10-27 15:49:35 423

转载 Linux驱动修炼之道-SPI驱动框架源码分析(中)

来自:http://blog.youkuaiyun.com/woshixingaaa/article/details/6574220这篇来分析spi子系统的建立过程。嵌入式微处理器访问SPI设备有两种方式:使用GPIO模拟SPI接口的工作时序或者使用SPI控制器。使用GPIO模拟SPI接口的工作时序是非常容易实现的,但是会导致大量的时间耗费在模拟SPI接口的时序上,访问效率比较低,容易成为系统

2015-10-27 15:47:53 350

转载 Linux驱动修炼之道-SPI驱动框架源码分析(上)

SPI驱动架构,以前用过,不过没这个详细,跟各位一起分享:来自:http://blog.youkuaiyun.com/woshixingaaa/article/details/6574215SPI协议是一种同步的串行数据连接标准,由摩托罗拉公司命名,可工作于全双工模式。相关通讯设备可工作于m/s模式。主设备发起数据帧,允许多个从设备的存在。每个从设备有独立的片选信号,SPI一般

2015-10-27 15:37:46 284

转载 Linux下的platform总线驱动

转自 http://my.youkuaiyun.com/weiqing1981127一.Platform设备驱动概念主要讲解平台设备驱动的模型和基本概念,同时因为驱动加载的方式有动态加载和静态加载两种方式,这里我们分别对动态加载和静态加载两种情况下,如何使用平台设备和驱动加以叙述。最后使用mini2440开发板,运用Platform和device_attribute机制,编写按键驱动代码和测试代码

2015-10-24 10:52:28 272

空空如也

空空如也

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

TA关注的人

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