编程语言
文章平均质量分 82
丰满
具有创意的长相,天生给我阳光我就灿烂的性情。
展开
-
C++读书笔记
<br />1:一般的编程流程:编辑-》编译-》链接-》调试<br />2:Std:是名空间<br />3:使用using namespace std 语句,使得后面的名称若没有在现场定义,则会自动<br />到std的名空间去找。<br />4:C++对C的增强,表现在两方面:<br />a:在原来面向过程机制的基础上,对C语言的功能做了不少扩充<br />b:增加了面向对象的机制<br />7:cout<<“hellow !/n";表示输出<br />8:cin>>a>>b; 表示输入原创 2010-09-08 09:36:00 · 597 阅读 · 0 评论 -
嵌入式C语言专题一:软件架构篇
软件结构是软件的灵魂!结构混乱的程序面目可憎,调试、测试、维护、升级都极度困难。一个高尚的程序员应该是写出如艺术作品般程序的程序员。内容要点:·模块划分·多任务还是单任务·单任务程序典型架构·中断服务程序·硬件驱动模块·C的面向对象化模块划分 模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统转载 2011-11-22 20:30:23 · 1190 阅读 · 0 评论 -
嵌入式C语言专题二:内存操作篇
C语言最精华的内涵皆在内存操作中体现。我们之所以在嵌入式系统中使用C语言进行程序设计,99%是因为其强大的内存操作能力! 如果你爱编程,请你爱C语言;如果你爱C语言,请你爱指针;如果你爱指针,请你爱指针的指针!内容要点:·数据指针·函数指针·数组vs.动态申请·关键字const·关键字volatile·CPU字长与存储器位宽不一致处理数转载 2011-11-22 20:31:37 · 898 阅读 · 0 评论 -
嵌入式C语言专题四:键盘操作篇
计算机学的许多知识都具有相通性,因而,不断追赶时髦技术而忽略基本功的做法是徒劳无意的。我们最多需要"精通 "三种语言,最佳拍档是汇编、C、C++(或JAVA),很显然,如果你"精通"了这三种语言,其它语言你应该是可以很快"熟悉"的,否则你就没有"精通 "它们。内容要点:·处理功能键·处理数字键·整理用户输入处理功能键 功能键的问题在于,用户界面并非固定的,用户转载 2011-11-22 20:33:11 · 865 阅读 · 1 评论 -
嵌入式专题C语言篇
不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,由于汇编语言开发的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比,C语言--一种"高级的低级"语言,则成为嵌入式系统开发的最佳选择。背景篇本文的讨论主要围绕以通用处理器为中心的协议处理模块进行,因为它更多地牵涉到具体的C语言编程技巧。本文讲转载 2011-11-22 20:29:23 · 669 阅读 · 0 评论 -
嵌入式C语言专题三:屏幕操作篇
屏幕乃嵌入式系统生存之重要辅助,面目可憎之显示将另用户逃之夭夭。屏幕编程若处理不好,将是软件中最不系统、最混乱的部分,笔者曾深受其害。 内容要点:·汉字处理·系统时间显示·动画显示·菜单操作·模拟MessageBox函数汉字处理 现在要解决的问题是,嵌入式系统中经常要使用的并非是完整的汉字库,往往只是需要提供数量有限的汉字供必要的显示功能。例如,转载 2011-11-22 20:32:28 · 923 阅读 · 0 评论 -
嵌入式C语言专题五:性能优化篇
内容要点:·使用宏定义·使用寄存器变量·内嵌汇编·利用硬件特性·活用位操作使用宏定义 在C语言中,宏是产生内嵌代码的唯一方法。对于嵌入式系统而言,为了能达到性能要求,宏是一种很好的代替函数的方法。 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个: 错误做法:#define MIN(A,B) ( A 正转载 2011-11-22 20:33:58 · 1099 阅读 · 0 评论 -
memcmp函数的用法
原型:int memcmp(const void *buf1, const void *buf2, unsigned int count); 用法:#include 或#include 功能:比较内存区域buf1和buf2的前count个字节。 说明: 当buf1 当buf1=buf2时,返回值=0 当buf1>b原创 2012-06-14 13:57:49 · 1280 阅读 · 0 评论 -
sscanf的用法
1. 常见用法。 char buf[512] ; sscanf("123456 ", "%s", buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中! printf("%s\n", buf); 结果为:123456static int ut_gps_get_baudrate(){ char原创 2012-06-14 13:54:53 · 613 阅读 · 0 评论 -
函数指针的解析
2011-10-11 17:10 73人阅读 评论(0)收藏 举报http://blog.chinaunix.net/space.php?uid=25524263&do=blog&id=2888273一 通常的函数调用 一个通常的函数调用的例子://自行包含头文件void MyFun(int x); //此处的申明也可写成:vo转载 2012-09-25 10:42:26 · 846 阅读 · 0 评论 -
字节序问题--大端法小端法
一、字节序定义字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian。引用标准的Big-Endian和Li转载 2013-08-27 11:04:43 · 867 阅读 · 1 评论 -
C++与C中的函数互相调用的处理
一、C++中调用C函数C++和C是两种完全不同的编译链接处理方式,如果直接在C++里面调用C函数,会找不到函数体,报链接错误。要解决这个问题,就要在 C++文件里面显示声明一下哪些函数是C写的,要用C的方式来处理。首先引用头文件前需要加上 extern “C”,如果引用多个,那么就如下所示:[cpp] view plaincopyprint?extern “C”转载 2014-06-18 16:08:58 · 1046 阅读 · 0 评论 -
C++中的虚函数(virtual function)
C++中的虚函数(virtual function)作者:张笑猛提交者:eastvc 发布日期:2003-11-22 14:46:56原文出处:http://objects.nease.net/1.简介 虚函数是C++中用于实现多态(poly转载 2011-08-17 17:16:44 · 505 阅读 · 1 评论 -
C语言嵌入式系统编程修炼之软件架构篇 3
模块划分 模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了相对论),C语言模块化程序设计需原创 2011-09-01 10:49:46 · 646 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之软件架构篇 2
硬件驱动模块 一个硬件驱动模块通常应包括如下函数: (1)中断服务程序ISR (2)硬件初始化 a.修改寄存器,设置硬件参数(如UART应设置其波特率,AD/DA设备应设置其采样速率等); b.将中断服务程序入口地址写入中断向量表转载 2011-09-01 10:47:28 · 797 阅读 · 0 评论 -
The Top 9½ In a Hacker’s Bookshelf (黑客书架上的九本书)行走江湖的九阴真经
<br />Copy from:http://grok-code.com/11/the-top-9-in-a-hackers-bookshelf/<br />Every hacker should have a good solid dead tree library to draw ideas from and use as reference material. This list has a bit of everything - textbooks you will encounter at top转载 2010-10-19 10:32:00 · 1879 阅读 · 0 评论 -
C语言对其问题
<br />一、什么是对齐,以及为什么要对齐:<br />1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。<br />2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按照适合其平台的要转载 2010-10-19 10:13:00 · 478 阅读 · 0 评论 -
c语言中volatile关键字的作用
<br />volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改。<br />用volatile关键字声明的变量i每一次被访问时,执行部件都会从i相应的内存单元中取出i的值。<br />没有用volatile关键字声明的变量i在被访问的时候可能直接从cpu的寄存器中取值(因为之前i被访问过,也就是说之前就从内存中取出i的值保存到某个寄存器中),之所以直接从寄存器中取值,而不去内存中取值,是因为编译器优化代码的结果(访问cpu寄存器比访问ram快的多)。<br />以上原创 2011-01-06 09:36:00 · 832 阅读 · 0 评论 -
高质量的C++/C的编程指南
<br /> <br /> <br /> <br /> <br /> <br /> <br />高质量C++/C编程指南<br /> <br /> <br /> <br /> <br />文件状态<br />[ ] 草稿文件<br />[√] 正式文件<br />[ ] 更改正式文件<br />文件标识:<br /> <br />当前版本:<br />1.0<br />作 者:<br />林锐博士<br />完成日期:<br />2001年7月24日<br /> <br /> <br />版本历史原创 2010-11-17 10:00:00 · 1608 阅读 · 1 评论 -
单片机C语言的编程规范
<br />写单片机程序也是程序,也要遵循写软件的一些基本原则,不是为了完成功能那么简单。我看过的所有的C语言单片机书籍基本都不注重模块化思想,完全是拿着C当汇编用,简直是在糟蹋C语言!<br /><br />如下问题,几乎所有的单片机书籍中都大量存在(更别说网上的和现实中的代码了,书上都写的那么差劲,学的人能好到哪里去):<br />1、变量到处定义,根本不管变量的生命周期是否合适(请回答:全局变量、局部变量、静态变量、volatile变量有什么区别联系?)<br />2、变量名称极不规范,根本从名字上看转载 2010-11-17 09:46:00 · 1046 阅读 · 1 评论 -
软件编程规范
<br /> 第一章 文件结构<br /> <br />每个C++/C 程序通常分为两个文件。一个文件用于保存程序的声明(declaration),<br />称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)<br />文件。C++/C 程序的头文件以“.h”为后缀,C 程序的定义文件以“.c”为后缀,C++程序<br />的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。<原创 2010-11-17 10:25:00 · 820 阅读 · 0 评论 -
关于C++的学习思路
建议根据学习的深度按照如下顺序:C++语言程序设计-钱能-清华大学出版社Thinking in C++C++ PrimerThe C++ Programming LanguageEffective C++More Effective C++Exceptional C++More原创 2011-07-18 14:33:13 · 549 阅读 · 0 评论 -
C/C++的从入门到高手的pdf宝典,希望对您有帮助
C:《C和指针》- PDF高清版下载地址:http://www.fishc.com/a/book/C/821.html《C程序设计语言》- 完美中文版PDF下载地址:http://www.fishc.com/a/book/C/632.html《The C Programming原创 2011-07-18 14:55:41 · 660 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之内存操作 1
数据指针 在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情转载 2011-09-01 10:33:07 · 525 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之软件架构篇 1
单任务程序典型架构 (1)从CPU复位时的指定地址开始执行; (2)跳转至汇编代码startup处执行; (3)跳转至用户主程序main执行,在main中完成: a.初试化各硬件设备; b.初始化各软件模块; c.进入转载 2011-09-01 10:43:09 · 858 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之内存操作 (2)
关键字const const意味着"只读"。区别如下代码的功能非常重要,也是老生长叹,如果你还不知道它们的区别,而且已经在程序界摸爬滚打多年,那只能说这是一个悲哀:const int a;int const a;const int *a;转载 2011-09-01 10:38:11 · 593 阅读 · 0 评论 -
looper and handler
一般情况下,我们启动一个线程,是让它完成一件任务,完成该任务后,线程就退出了。还有一种情况,我们希望该线程一直在运行,我们会时不时的向该线程发送一些消息,线程接收到该消息后,执行相应的操作,执行完成后,线程不退出,等待下一个消息,这很像所谓的“事件触发”。在Android上,使用Looper和Handler很容易实现该功能。故名思意,Looper就是一个消息循环,而Handler就是一个消息处原创 2014-10-16 21:33:21 · 811 阅读 · 1 评论