关于c语言中负数位移位操作的漫谈
最近有个朋友在程序中使用了对16进制数做负数移位(编译器是gcc),本人最次产生好奇,所以研究了一些。
对一个数做负数位移位的操作是不规范的,但是是可行的。
具体例子:
char tmp = 0x10;
tmp = tmp
大家猜猜结果是什么,有人猜是tmp左移-1位不就是右移1位吗?结果是0x01?
很遗憾,电脑和人脑是不一样的。结果是0
为什么呢?为了找出原因,本人进行
关于郭天祥51开发板无法烧写程序问题的解决(Prolific USB-to-Serial Comm Port)
由于使用了win8系统,之前购买的郭天祥C51开发板在通过一个两头都是usb口的下载线下载程序时出现了问题:下载工具stc isp无法连接到开发板上的串口,所以无法下载程序到c51开发板上,错误显示如下
本人尝试了网络几乎所有的方法,包括更新驱动、恢复驱动到旧版本(可能有用,我没用)等等方式都没有成功。这导致本人当时几乎放弃了这块板子。在尝试过程中我也想过用u转串连接板子上的串口
我的25年嵌入式生涯-周立功
《程序员》杂志的编辑约我写一篇命题作文,想了几天都无从下手不知道写什么才好。在这篇文章里,我不打算将创业的艰辛与喜悦重新回忆一遍,我确实不想去误 导大家,因为我所处的年代是一个物质缺乏的年代,成功相对来说要容易得多。每个人的成长经历都有其个性化的东西,每个人的成功创业经验虽然有一些可以遵循
的普遍规律,但一般来说都很难复制,成功需要不断地创新。
对于今天很多的年轻人来说,一味
ARM里面的APB和AHB的意思
APB
(Advanced Peripheral Bus),片上外设总线。
主要用于慢速片上外设与ARM核的通讯。
AHB(Advanced High performance Bus),高性能总线。主要用于系统高性能、高时钟速率模块间通信,。
enum与typedef enum的用法
在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6
#define SUN 7
在此,我们定义一种新的数据类型,希望它能完成
在C语言中嵌入汇编语言方法
两种方法在c语言中嵌入汇编:
(1) __asm(" 字符串序列"); 例如:
__asm(" MOVN A,#1");
(2) #pragram asm
汇编语句
#pragram endasm
例如:
#pragram asm
MOVN A,#1
MOVW _temp,A
C中的volatile用法
嵌入式编程中经常用到 volatile这个关键字,在网上查了下他的用法可以归结为以下两点:
一:告诉compiler不能做任何优化
比如要往某一地址送两指令:
int *ip =...; //设备地址
*ip = 1; //第一个指令
*ip = 2; //第二个指令
以上程序compiler可能做优化而成:
int *ip = ...;
struct用法深入探索
1. struct的巨大作用
面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区别一个开发人员是否具备丰富开发经历的标志。
在网络协
STM32 NVIC之抢占优先级和响应优先级
NVIC:Nested Vectored Interrupt Controller
STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称作'亚优先级'或'副优先级',每个中断源都需要被指定这两种优先级。
具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先
面向自由职业者和小型企业的开源开票工具
小型企业拥有者和自由职业者投入了大量的精力到他们的事业中。他们这样做不仅仅是因为他们热爱他们所做的,也因为他们是以赚钱为目标的。
在这样的工作中,没有哪一部分工作是少的。
获取报酬通常意味着发给客户一张发票。当然,我们可以很容易并且很快的使用一个文字处理工具或一个表格制作一张发票,但是有些时候你需要更进一步,比如使得发票有更专业的外观、有一套跟踪发票的机制、能够提醒客户知道什么时候可以获取你发
使用c99编译出警告信息:implicit declaration of function ‘usleep’
按常规来讲,出现 “implicit declaration of function ‘xxxx’ ” 是因为头文件未包含导致的!
但是usleep的头文件unistd.h已经包含,所以一时间让人很困惑!到网上搜索,给出的结果都是:头文件未包含xxx
原因:
原来是由于自己在编译时,为了可以for(int i; ...) 在Makefile中增加-std=c99导致的;
解
Windows7 下QT4.8.6安装教程
该教程是自己根据网上的教程,结合自己的实际安装过程,记录下来的,目的是为了便于以后重新安装。
步骤:
1 下载qt-opensource-windows-x86-mingw482-4.8.6-1.exe
下载地址:http://qt-project.org/downloads
点击下载便可
2 打开qt-opensource-windows-x86-mingw482-4.8.
linux二进制安装MariaDB
第一步:准备账号 [root@centos7 ~]#getent passwd mysql //查看有没有mysql账号(没有的话需要创建)
[root@centos7 ~]#useradd -r mysql -s /sbin/nologin //创建系统账号 shell类型为nologin
[root@centos7 ~]#getent passwd mysql mysql:x:988:983::/home/mysql:/sbin/nologin [root@centos7 ~]
网络Socket编程及实例
1 TCP和UDP介绍 在介绍TCP和UDP之前,有必要先介绍下网络体系结构的各个层次。 1.1 网络体系结构 协议:控制网络中信息的发送和接收。定义了通信实体之间交换报文的格式和次序,以及在报文传输或接收或其他事件所采取的动作。 一般把网络的层次结构和每层所使用协议的集合称为网络体系结构(NetworkArchitecture)。 由国际标准化组织ISO 在1981年提出的网络分层结构,简称为OSI参考模型。(Open Systems Interconnection Reference Mo
今日推荐
周排行