自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (23)
  • 收藏
  • 关注

原创 16道嵌入式C语言笔试面试题(经典!)

1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)  #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL  我在这想看到几件事情:  1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)  2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少

2014-09-30 11:26:21 668

原创 VMware虚拟机的上网问题

一. VMware 的几个虚拟的网络设备VMnet0 : 在桥接模式下的虚拟交换机VMnet1 : 在Host-Only模式下的虚拟交换机VMnet8 : 在NAT模式下的虚拟交换机VMnet Network Adapter VMnet1 : 在Host-Only 模式下,Host 与Host-Only 虚拟网络进行通信的虚拟网卡(这是在物理机上的虚拟网卡,跟虚拟机上的虚拟网卡不一

2014-09-26 19:34:11 420

原创 信号和槽

一. 信号(signal)当对象的状态发生改变时,信号被某一个对象发射(emit),只有定义过这个信号的类或者其派生类能够发射这个信号。当一个信号被发射时,与其相关联的槽将被执行,就象一个正常的函数调用一样。信号-槽机制独立于任何GUI 事件循环。只有当所有的槽正确返回以后,发射函数(emit)才返回。如果存在多个槽与某个信号相关联,那么,当这个信号被发射时,这些槽将会一个接一个地

2014-09-26 19:30:22 591

原创 python--mysite教程

pythonquit()    --退出pip    --python的包管理器    sudo apt-get install python-pip                sudo pip install django1.django-admin.py startproject mysite    --生成mysite目录2.进入mysite  pyt

2014-09-20 17:50:50 1090

原创 EPOLL两种模式详解

linux异步IO浅析http://hi.baidu.com/_kouu/blog/item/e225f67b337841f42f73b341.htmlepoll有两种模式,Edge Triggered(简称ET) 和 Level Triggered(简称LT).在采用这两种模式时要注意的是,如果采用ET模式,那么仅当状态发生变化时才会通知,而采用LT模式类似于原来的select/po

2014-09-19 12:49:39 751

原创 epoll使用详解(精髓)

epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在li...

2014-09-19 11:18:59 420

原创 嵌入式Linux--网络编程

TCP:Transmission Control Protocol 传输控制协议TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议。OSI 协议参考模型,它是基于国际标准化组织(ISO)的建议发展起来的,从上到下共分为7 层:应用层、表示层、会话层、传输层、网络层、数据链路层及物理层TCP/IP 参考模型  :从上到下共分为4 层  :

2014-09-19 10:00:14 468

原创 嵌入式linux的网络编程(1)--TCP/IP协议概述

嵌入式linux的网络编程(1)--TCP/IP协议概述CSDN2013年度博客之星评选活动开始,本人有幸入围参加评选,如果博客中的文章对你有所帮助,请为 ce123 投上宝贵一票,非常感谢!投票地址:http://vote.blog.csdn.net/blogstaritem/blogstar2013/ce1231.OSI参考模型及TCP/IP参考模型通信协议用于协调不同网络设备

2014-09-19 09:53:25 680

原创 Linux网络编程必看书籍推荐

首先要说讲述TCP/IP的书很多,其中有3泰书很全。分别是《TCP/IP详解》三卷本,《用TCP/IP进行网际互连》三卷本,《TCP/IP指南》+《IPv6》四卷本其中TCP/IP详解的作者还写了另外2本经典著作,《Unix环境高级编程》,《Unix网络编程》作者W.Richard Stevens个人网站  http://www.kohala.com/大师作品部部经典,可惜1999

2014-09-18 09:07:26 567

原创 Linux 环境下C

C 编程中相关文件后缀.a静态库 (archive).cC源代码(需要编译预处理).hC源代码头文件.iC源代码(不需编译预处理).o对象文件.s汇编语言代码.so动态库[编辑]单个源文件生成可执行程序下面是一个简单的“hello, ubuntu”程序的源

2014-09-18 09:06:00 410

原创 ubuntu常用软件大全

一、安装中文包,这个我就不多说了,谁都会装。在“语言支持”中选中文就行了二、设置更新源,更新系统。sudo apt-get updatesudo apt-get dist-upgradesudo apt-get upgrade -y有一个简单办法可以使更新速度更快,把以前更新的时候下载的软件包备份一下,把var/cache/apt/archives/下面的所有deb包放在另 外

2014-09-18 09:00:29 800

原创 socket网络编程

套接字与“地方”绑定好了后,对于服务端而言(这里是TCP情况),自然就应该乖乖地去聆听,聆听客户端的需求,否则怎么会叫服务客户呢?如何去聆听呢?很简单,这个单词你早就学过了,那就是listen, 我们来看看listen函数的原型: int PASCAL FAR listen (SOCKET s, int backlog);       第一个参数是服务端套接字,你要聆听,总得出来说个话啊,

2014-09-17 15:57:16 518

原创 TCP协议中的三次握手和四次挥手(图解)

建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:7非37非3先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:【注意】中断连接

2014-09-16 17:13:07 358

Qt之无边框界面包括最大化、最小化和关闭按钮及实现可移动、窗口伸缩功能

Qt之无边框界面包括最大化、最小化和关闭按钮及实现可移动、窗口伸缩功能

2022-11-30

QSS美化之黑色皮肤最全

QSS美化之黑色皮肤最全

2022-11-30

QSS美化之青色风格最全,可直接用

QSS美化之青色风格最全,可直接用

2022-11-30

批量文件重命名工具

用于批量文件重命名

2017-07-27

JS中数学函数的使用

JS中数学函数的介绍及使用

2017-03-24

物流查询工具

基于Qt5.7 和 快递 100 API 并 通过解析返回的JSON数据开发的一款物流查询工具

2016-08-20

天气查询工具

基于Qt5.7 和 百度天气API 并 通过解析返回的JSON数据开发的一款天气查询工具

2016-08-18

Qt之操作Excel

使用Qt操作Excel的常用操作

2016-08-09

Qt之屏幕开满玫瑰花

用Qt5.7写的一个屏幕开满玫瑰花的程序;也可以在屏幕右下方显示单个玫瑰花并窗口置顶

2016-08-09

Qt之国际化

Qt国际化语言的使用、多语言切换

2016-08-09

基于Qt的照片查看器

查看照片、旋转和放大缩小、播放幻灯片

2016-08-09

获取文件信息

获取文件的类型、权限、创建时间、修改时间、最后访问时间等文件的属性信息

2016-08-09

Git使用教程

本文详细介绍了Git代码托管工具在Windows系统下的安装和使用方法

2016-07-24

tableView用法详解

tableView用法详解

2016-07-15

基于Qt的关机程序

该软件实现了 计算机关机 重启 定时关机等功能,同时还实现了带有系统托盘的功能。

2016-03-27

Win764位安装Oracle11g及新建表空间和用户

Win764位安装Oracle11g及新建表空间和用户的详细步骤

2015-11-21

QTreeView用法详解

介绍了QTreeView的用法以及模型-视图的相关操作

2015-08-17

基于Tiny210开发板的led--流水灯

编写裸板程序 , 在 tiny210 开发板上 , 用核心板上的 4 个 LED 灯 , 生成一个 4 位 2 进制数计数器 , 以大约 1Hz 的频率 (1 次 / 秒 ) 计数 ( 显示 0,1,2,3...) 。

2014-10-21

c语言文件读写函数

字符读写函数:(fgetc和fputc) fputc函数:把一个字符写到磁盘文件上。具体格式如下:fputc(ch,fp) fgetc函数:从磁盘文件读取一个字符。其格式如下:ch=fgetc(fp) 字符串读写函数:(fgets和fputs) fputs函数:一般格式为:fputs(str,fp) fgets函数:一般格式为:fgets(str,n,fp) 读写数据块函数(fread和fwrite) 一般调用形式为:fread(buffer,size,count,fp) fwrite(buffer,size,count,fp)

2014-09-28

飞翔的小鸟

#include "world.h" #include <QPainter> #include <QFile> #include <QTextStream> #include <QDataStream> #include "bird.h" #include <QDebug> World::World(QWidget* parent): QWidget(parent) { //this->resize(432, 644); this->setGeometry(400,200, 432,644); bird = new Bird; ground = new Ground; c1 = new Column(0); c2 = new Column(1); gameoverImage.load(":gameover"); bgImage.load(":bg"); startImage.load(":start"); gameOver = false; startGame = false; score = 0; score_label = new QLabel(this); score_label->setGeometry(QRect(270,10,120,40)); score_label->setStyleSheet(QString::fromUtf8("font: 20pt \"Khmer OS System\";\n" "color: rgb(85, 0, 255);")); timer.setInterval(1000/70); connect(&timer, SIGNAL(timeout()), this, SLOT(run())); //一会写run // timer.start(); QFile file("./score.dat"); if(!file.open(QFile::ReadOnly | QFile::Text)){ best_score = 0; }else{ //QTextStream in(&file); QDataStream in(&file); in >> best_score; qDebug() << "read..."; } file.close(); } World::~World(){ if(score > best_score) save(score); } void World::save(unsigned short best){ QFile file("./score.dat"); if(!file.open(QFile::WriteOnly | QFile::Text)){ return; }else{ // QTextStream out(&file); QDataStream out(&file); out << best; //qDebug() << "write"; } file.close(); } //哑元函数 void World::paintEvent(QPaintEvent*){ QPainter painter(this); painter.drawImage(0,0,bgImage); //将画笔传给bird对象,由bird对象画出当前小鸟的图片 c1->paint(&painter); c2->paint(&painter); bird->paint(&painter); ground->paint(&painter); if(!startGame){ painter.drawImage(0,0,startImage); } if(gameOver){ painter.drawImage(0,0,gameoverImage); } if(!startGame){ painter.setFont(QFont("Khmer OS System",20,QFont::Bold)); painter.drawText(QRect(QPoint(145,390), QPoint(320,445)), QString::fromUtf8("历史最高:")+=QString::number(best_score)); } score_label->setText(QString("score:")+=QString::number(score)); } void World::run(){ bird->fly();//飞 bird->step();//小鸟下落 c1->step(); c2->step(); ground->step(); if(bird->pass(*c1) || bird->pass(*c2)){ qDebug("pass"); score++; } if(bird->hit(*c1,*c2,*ground)){ timer.stop(); gameOver = true; //gameover ... //TODO /** 1)加载gameover图片,实现点击图片 的开始按钮重新开始游戏。 2)将开始画面加入,点击鼠标或者键盘的 空格键才开始游戏 完成上两步后做以下工作: 3)加入评分机制。 通过一根柱子得1分 */ } this->repaint();//重新绘制 } void World::mousePressEvent(QMouseEvent *p){ //点击鼠标让当前速度保持为初始速度 //speed = v0; //bird->speed = bird->v0; bird->flappy(); //restart()之前 starGame = false; if(!startGame){ startGame = true; timer.start(); } if(gameOver){ QRect rect(QPoint(135,331), QPoint(281,408)); QPoint point = p->pos(); if(rect.contains(point)){ restart(); } } } //实现restart void World::restart(){ gameOver = false; startGame = false; if(score > best_score){ best_score = score; save(best_score); } score = 0; delete bird; delete c1; delete c2; bird = new Bird; c1 = new Column(0); c2 = new Column(1); qDebug()<< "restart..."; this->repaint();//定时器停止需要手动重绘 }

2014-09-15

文件的读写操作

1.fgetc/fputc(fgetc结束标记EOF) //从fp指向的文件中一次读取一个字符 fgetc(fp) //读取n个字符到屏幕上 fputc(n,stdout); 2.fgets/fputs(fgets结束标记NULL) //从fp指向的文件中读文件的读写 文件起始处取信息到数组buf中,最大读取500字节,按行读取 fgets(buf, 500, fp);

2014-09-15

静态库和动态库制作和使用方法

静态库的制作:(inc/lib/src/main.c) gcc -c src/*.c(编译src目录下的.c文件生成.o文件) ar rs libmath.a *.o(生成静态库:libmath.a(命名规则:必须以lib开头,以.a结尾,中间是库名:math)) 静态库的使用: gcc main.c -L ./lib -l math -I ./inc -o main(-L:指定库名所在路径,-l:指定库名,-I:指定头文件路径)

2014-09-15

针对vim编辑器的vimrc文件配置

syntax on "语法高亮" set nocompatible "使用vim的键盘模式" set nu "设置行号" "set nobackup "不需要备份" set confirm "未保存或者只读时,弹出确认" set mouse=a "鼠标可用" set selection=exclusive set selectmode=mouse,key set showcmd "显示未完成命令" set tabstop=4 "tab为4个空格"

2014-09-15

C语言基础知识

float类型最少能精确到小数点后6位,通常是32位的。 double类型最少能精确到小数点后10位,通常是64位的。 通常double是最好的选择,因为其精度比较高,当然运行速度要比float要多不少。 double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多 scanf函数,与printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

2014-09-15

Linux基本命令

ubuntu系统终端的基本操作命令 which ls 查看要执行的命令所在位置 wc l file(其后可跟多个文件) 查看file文件的行数 whoami 查看用户 su wukong 切换用户 chmod 0664 file chmod go+w go+x file 修改权限(u:user g:group o:other) sudo chgrp police a 改变指定文件a所属的组为police sudo chown panda b 改变文件或目录b的属主为panda和属组 sudo chown +用户名+组名+文件 vi etc group 查看组 vi etc passwd 查看用户 addgroup 添加组 adduser 添加用户 delgroup 删除组 deluser 删除用户 exit 退出用户">ubuntu系统终端的基本操作命令 which ls 查看要执行的命令所在位置 wc l file(其后可跟多个文件) 查看file文件的行数 whoami 查看用户 su wukong 切换 [更多]

2014-09-15

空空如也

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

TA关注的人

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