- 博客(32)
- 收藏
- 关注
转载 宏定义
众多C++书籍都忠告我们C语言宏是万恶之首,但事情总不如我们想象的那么坏,就如同goto一样。宏有一个很大的作用,就是自动为我们产生代码。如果说模板可以为我们产生各种型别的代码(型别替换),那么宏其实可以为我们在符号上产生新的代码(即符号替换、增加)。关于宏的一些语法问题,可以在google上找到。相信我,你对于宏的了解绝对没你想象的那么多。如果你还不知道#和##,也不知道pr
2009-11-09 00:30:00 434
原创 ARM入口代码分析
对于刚学习ARM的人来说,如果分析它的启动代码,往往不明白下面几个变量的含义:|Image$$RO$$Limit|、|Image$$RW$$Base|、|Image$$ZI$$Base|。首先申明我使用的调试软件为ADS1.2,当我们把程序编写好以后,就要进行编译和链接了,在ADS1.2中选择MAKE按钮,会出现一个Errors and Warnings 的对话框,在该栏中显示编译和链接的结果
2009-10-18 14:52:00 425
转载 震惊世界的药方
说 明1、 本报告所用药物,以食物为主,绝对无毒。2、 为使读者易懂,剂量单位均用旧制,如:斤、两、钱等,有的用碗,是指一般性中碗。3、 所用药物凡带有*记号的一般可到中药店买,药店都有。4、 报告中所讲的醋,就是一般食用醋,如果用白醋的,报告中另有注明。5、 报告中所讲的白酒,是指50度以上的白酒。6、 有些疾病治疗期间需忌口,是指用药期间如不忌口,则会影响疗效。7、 本报告共三部分,每部分最后
2009-10-12 19:44:00 619
转载 如何理解c和c++的复杂类型声明
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。 我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地理解任何C/C++声明的“右左法则”。 需要强调一下的是,复杂的C/C++声明并不是好的编程风
2009-08-09 21:54:00 273
转载 指针
转]这篇文章摘自网易广州社区的C语言版精华区。文章不错,不敢独享!作者girlrong是以前C语言版版主,她乐于助人,虚心诚恳,颇受网友欢迎。只可惜现在已退隐江湖了。 第一章。指针的概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分
2009-08-09 21:49:00 238
转载 C语言所有复杂的指针声明
摘录的别人的:C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:The right-left rule: Star
2009-08-04 21:33:00 378
转载 S3C2440快速启动的实现
摘 要:介绍 S3C2440 处理器的快速启动技术,重点对系统硬件的初始化,二级中断向量表的复制,代码段的复制以及 MMU 管理进行了探讨,并且对具体的实现代码进行了分析,实现了系统从 RAM 中的高速启动运行。关键词: S3C2440 ;快速启动; MMU 嵌入式系统对功能、可靠性、成本、体积、功耗等均有严格要求,以 ARM 体系结构为基础的各种 RISC 微处理器具有灵活的特性和强大的
2009-08-04 10:17:00 522
原创 结构体做函数返回值的例子
#include #include struct sa { int a; int b; char c;};struct sa fun1(struct sa psa){ psa.a=1; psa.b=99; psa.c=a; return(psa);}struct sa ss;int main(){ struct sa k; struct sa ll; k
2009-08-04 00:43:00 1698
原创 C函数的返回值
所谓函数类型是指函数返回值的类型。在C语言中允许一个函数的返回值是一个指针(即地址),这种返回指针值的函数称为指针型函数。定义指针型函数的一般形式为: 类型说明符 *函数名(形参表) { …… /*函数体*/ } 其中函数名之前加了“*”号表明这是一个指针型函数,即返回值是一个指针。类型说明符表示了返回的指针值所指向的数据类型。如:
2009-08-04 00:42:00 834
转载 学习C++的50条忠告
1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我
2009-07-26 22:17:00 296
原创 学习网站
孙鑫vc视频教程 http://www.codeguru.cn/VC%26MFC/sunxinvc C函数实例参考手册 http://www.codeguru.cn/CPP/CExample/ C/C++实例参考手册 http://www.codeguru.cn/CPP/cppExample/ Win32Api实例参考手册 http://www.codeguru.cn/VC%26MFC/Win32
2009-07-25 23:02:00 966
转载 VC快捷键
F1: 帮助Ctrl O :OpenCtrl P :PrintCtrl N :NewCtrl Shift F2 :清除所有书签F2 :上一个书签Shift F2 :上一个书签Alt F2 :编辑书签Ctrl+F2 :添加/删除一个书签F12 :Goto definitionShift F12 :Goto referenceCtrl Num :Displays the next symbo
2009-07-24 23:31:00 348
转载 快捷键
winkey+d : 这是高手最常用的第一快捷组合键。这个快捷键组合可以将桌面上的所有窗口瞬间最小化,无论是聊天的窗口还是游戏的窗口……只要再次按下这个组合键,刚才的所有窗口都回来了,而且激活的也正是你最小化之前在使用的窗口! --这个就是winkey winkey+f : 不用再去移动鼠标点“开始→搜索→文件和文件夹”了,在任何状态下,只要一按winkey+f就会弹出搜索窗口。
2009-07-23 11:46:00 264
转载 中医药方
1、 牙齿变白:刷牙时在牙膏上加上一点小苏达,刷三次后牙齿洁白如玉,牙锈自然脱落。2、 怎么戒烟:槟榔一只,钻个小孔,再往小孔里灌入一点烟代油用水泡两天取出凉干,想吸烟时,闻一下就不吸了,谁闻都可以戒烟。3、 怎么醒酒:醋、白糖、茶叶水各100克,醉酒以后,立即喝下,可达迅速醒酒,多喝醒多更快。4、怎么戒酒:取生杏仁二两少量味精化成水,然后浸泡二在放在酒里两滴,一同少喝,可以戒酒。5、
2009-07-16 21:34:00 900
转载 TTL电平、CMOS电平、RS232电平
什么是TTL电平、CMOS电平、RS232电平?它们有什么区别呢?一般说来,CMOS电平比TTL电平有着更高的噪声容限。(一)、TTL电平标准 输出 L: 2.4V。 输入 L: 2.0V TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。于是TTL电平的输入低电平的噪声容限就只有(0.8-0)/2=0.4V,高电平的噪声容限为(5-
2009-07-03 11:47:00 829
原创 如何理解 #define SREG (*(volatile unsigned char *)0x5F
#define SREG (*(volatile unsigned char *)0x5F) 嵌入式系统编程,要求程序员能够利用C语言访问固定的内存地址。既然是个地址,那么按照C语言的语法规则,这个表示地址的量应该是指针类型。所以,知道要访问的内存地址后,比如0x5F, 第一步是要把它强制转换为指针类型(unsigned char *)0x5F,AVR的SREG是八位寄存器,所
2009-06-30 14:23:00 1169 1
转载 进程与线程
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于: 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程
2009-06-18 09:38:00 377
原创 Subvision在Linux下的建立
本文主要讲述Subvision在Linux下的建立过程. 一.下载Apache和Subvision 1 .下载httpd-2.2.11.tar.gz(http://www.apache.org)源代码包 2.下载Subversion-1.6.2.tar.gz(http://subversion.tigris.org/)的源代码包 3.编译安装httpd # tar x
2009-06-17 10:26:00 2844
转载 Linux下的tar命令
Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法: tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面来举例说明一下: # tar -cf all.tar *.jpg 这条命令是将所有.
2009-06-15 16:57:00 529
原创 Void作用(适合初学者)
1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void
2009-06-08 19:39:00 4446
转载 Const的作用
const是C语言的一种关键字,起受保护,防止以外的变动的作用!可以修饰变量,参数,返回值,甚至函数体。const可以提高程序的健壮性,你只管用到你想用的任何地方。(一)const修饰参数。const只能修饰输入参数。 1、如果输入参数是指针型的,用const修饰可以防止指针被意外修改。 2、如果参数采用值传递的方式,无需const,因为函数自动产生临时变量复制该参数。 3、非内部数
2009-06-08 19:22:00 455
转载 volatile的作用
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1). 并行设备的硬件寄存器(如:状态寄存器) 2). 一个中断服务子程序中会访问到的非自动变量(Non-automatic
2009-06-08 19:08:00 242
原创 ARM开发心得之遇到问题(三)
五、U-BOOT安装后出现的三个问题 (一)ASK:自己作的扳子,最近调试时出现了一个问题,就是如下所示: U-Boot 1.1.1----www.21spacetime.net (Aug 22 2008 - 12:04:08) U-Boot code: 0C700000 -> 0C721338 BSS: -> 0C755C84 RAM Configuration:
2009-06-08 19:02:00 754
原创 ARM开发心得之初试牛刀(一)
一、关于电路板的测试 自己焊的电路板,使用之前,先做一系列的测试。 1.三组电源的对地电阻 名称 5v 3.3v 2.5v VO VI VO VI VO VI 恒丰锐科开发板 :
2009-06-08 18:58:00 1008
转载 Windows下的快捷键
F1帮助 F2改名 F3搜索 F4地址 F5刷新 F6切换 F10菜单 CTRL+A全选 CTRL+C复制 CTRL+X剪切 CTRL+V粘贴 CTRL+Z撤消 CTRL+O打开 SHIFT+DELETE永久删除 DELETE删除 ALT+ENTER属性 ALT+F4关闭 CTRL+F4关闭 ALT+TAB切换 ALT+ESC切换 ALT+空格键窗口菜单 CTRL+ESC开始菜单 拖动某一项时按
2009-06-08 18:54:00 263
原创 常用VI命令
命令 光标移动h或^h 向左移一个字符j或^j或^n 向下移一行k或^p 向上移一行l或空格 向右移一个字符G 移到文件的最后一行nG 移到文件的第n行w 移到下一个字的开头W 移到下一个字的开头,忽略标点符
2009-06-08 18:33:00 281
原创 SSH Secure Shell登录RedHat 中文乱码问题
用vi打开/etc/sysconfig/i18n文件,将 LANG=”zh_C:UTF-8N″SUPPORTED="zh_CN.UTF-8:zh_CN:zh"SYSFONT="latarcyrheb-sun16"修改成以下内容:LANG="zh_CN.GB18030"LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"SUPPORTED="zh_CN.GB1
2009-06-08 18:31:00 789
原创 Flash Access的使用方法
1.安装BanyanT1.4;2.联好wiggle并口仿真线,执行安装BanyanT1.4后的软件;3.执行flashaccess软件;4.点击菜单的Load configration选项,选择“S3C44BOX.CFG”配置问题-----此配置文件正好符合星光开发板,主要是cpu、flash、地址设置几乎一样;5.点击“Initialize”,说明与仿真器通讯上了;6.此后像
2009-06-08 17:33:00 765
原创 Subversion的安装和使用(For Windows)
Subversion的安装和使用参考网址:http://www.subversion.org.cn/?action-viewnews-itemid-1如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来。本文是使用Subversion最快速的教程,在最短
2009-06-08 17:28:00 1781
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人