锦瑟 by priest:Etual

来源:百度文库 编辑:九乡新闻网 时间:2024/05/04 06:39:50
Etual 学习嵌入式系统
Etual.cublog.cn 首页 |文章 |相册 |收藏夹 |留言

关于作者

本博客全部文章属于个人原创,欢迎转载,请注明出处。 E-MAIL:Etual@163.com QQ :506042111
|| << 2011年7月 辛卯年(兔) >> ||
日 一 二 三 四 五 六
1
6月大 2
初二
3
初三 4
初四 5
初五 6
初六 7
小暑 8
初八 9
初九
10
初十 11
十一 12
十二 13
十三 14
十四 15
十五 16
十六
17
十七 18
十八 19
十九 20
二十 21
廿一 22
廿二 23
大暑
24
廿四 25
廿五 26
廿六 27
廿七 28
廿八 29
廿九 30
三十
31
7月小
我的分类
我的文章分类
我的作品
ARM学习笔记
AVR单片机学习
MCS-51单片机学习
PIC单片机学习
STM32学习笔记
EMC单片机学习
C/C++语言编程
Linux学习笔记
日语阁
茶馆
我的图片分类
文章附图
我的链接分类


文章列表 - C/C++语言编程

随机数加密算法
// 随机数加密算法,原理很简单 A^B = C , A^C =B , B^C = A
// Etual 2011-3-14
查看全文
发表于:2011-03-14 22:43:54 ┆阅读(263) ┆评论(1)


关于架构编译器方面的一些感悟
这所谓的编译器就是将c语言代码编译为机器代码的,先将C编译为汇编代码,再由汇编器将汇编代码编译为机器代码,CPU执行的是机器代码
突然发觉好像很多书都这么说,很多人也这么说,于是很自然的记住了,但是,我突然想起了,这可是隐藏着一些道理。
1,C编译为汇编……
查看全文
发表于:2010-07-19 21:54:53 ┆阅读(240) ┆评论(0)


对C语言的一点感悟
这所谓的编译器就是将c语言代码编译为机器代码的,先将C编译为汇编代码,再由汇编器将汇编代码编译为机器代码,CPU执行的是机器代码
突然发觉好像很多书都这么说,很多人也这么说,于是很自然的记住了,但是,我突然想起了,这可是隐藏着一些道理。
1,C编译为汇编,对于这个过程,应该是平台无关的,具体是怎么实现的?这个是由C编译器开发商来处理,总之,如果我用IAR ARM的话,那么同样的main函数,编译出来应该是得到 ARM 格式的汇编代码,也就是说,使用的是 ARM 指令集,同样道理,如果是 GCC,也产生……
查看全文
发表于:2010-04-08 10:17:40 ┆阅读(351) ┆评论(1)


一个用二重指针处理函数指针数组的问题
逛论坛看到一个问题,本来开始以为很简单,但是写出来的,编译通过,但是运行就是不通过,后来意识到问题的严重性,这里面肯定隐藏了自己不知道的东西,于是搞了一个早上,总算把结果搞出来了。
原帖子在这里:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3495679&bbs_id=1000
解决问题的关键,指针数组,包括函数指针数组,里面的元素存放的是指针,所以得出来的是一个……
查看全文
发表于:2009-08-04 10:46:12 ┆阅读(260) ┆评论(0)


二维数组和指针的一些感悟
OS平台: windows
编译器: VC++6.0 win32 platform program
数组和指针:
(一)一维数组和指针
int a[2] = {0x12345678 , 90};
int *p;
p = a
首先 p 指向 a,因为数组的名字就是指针,而且类型是 int 所以这里简单的匹配了。
那么
*p == a[0] == 0x12345678
*(p+1) = a[1] = 90;
注意指针地址加一这个操作,关键是看指针的类型,现在这里指针既然是指向了int数组
那么里面元素的类型也应该是 int,所以 p+1 这个操作应该是移动了一个 int 。
于是一……
查看全文
发表于:2009-08-03 17:01:22 ┆阅读(349) ┆评论(0)


用布尔代数分析C语言逻辑问题
首先,我是电子系的,学硬件,没有学离散数学,所以不知道这部分内容是不是离散
数学里面的东西 .... 我们学习《数字逻辑电路》的时候学了布尔代数的基本定律,逻辑
表达式的化简,卡诺图的化简等内容。
《中学生C语言入门演练100例》李学武编著,清华大学出版社
不要被题目骗了,里面的部分例子可不简单,至少要非常熟悉C语言才能很好的做出来....
其中p73有这么一题:
A B C D E 五个学生当中的部分学生参加了计算机竞赛,根据下面的条件判断那些人参加了:
1)A 参加时,B也参加……
查看全文
发表于:2009-07-13 09:56:03 ┆阅读(599) ┆评论(3)


顺序结构线性表
#include
#

三位平方数变成两位平方数
/*
* abc : xyz --> ax by cz
*
* Etual / Etual@163.com
* 2009-7-1
*/
#include

顺序存储结构的堆栈
#include
#

中缀表达式转换
#include
#

后缀表达式计算
#include
#

顺序表实现队列
#include
#

链表实现的队列
#include
#

递归实现全排列
/*
* 用递归来实现全排列
*/
#include 查看全文
发表于:2009-07-07 21:50:14 ┆阅读(297) ┆评论(0)


C语言宏替换的几种用法(转载)
出处:
http://topic.csdn.net/t/20030820/15/2168502.html
这几天在学习C语言,又看到一个宏的奇怪用法,于是上网找了一下,发现了csdn有个帖子整理了,觉得非常好,于是转载过来
原文是:
WindsonZhL(风之子) 2003-08-20 15:15:39
①简单宏替换
&n……
查看全文
发表于:2009-05-13 09:06:01 ┆阅读(306) ┆评论(0)


二重指针的一个问题分析
前些日子网上一个朋友问了我一个问题,据说是一个面试题
#include 查看全文
发表于:2009-04-07 11:45:12 ┆阅读(229) ┆评论(3)


一个奇怪的C语法--关于“##”符号的用法
看Uboot发现了这个语法,自己看过7-8本的C语言的书,貌似都没有说 -v-
首先感谢嵌入室群的麦田守望者朋友的指点,总算搞明白这个语法了。
##表示连接,比如 a##b 就等价与 ab ,注意不是 "ab"(区别于#)
#define test(a) a##b; 这里先会替换a,再连接,比如 test(int),a##b 就等价与intb
平台是 ubuntu 8.10 ,GCC 版本 4.3.2
下面是实验代码,保存为 app.c
查看全文
发表于:2008-11-28 23:07:34 ┆阅读(216) ┆评论(0)


今天研究了一下液晶缓冲区填数据的问题
上面就是代码,问题是 1,2 两种不同的赋值办法,得到的 指针地址 addr 分别是多少?1和2的分别就是查了一个括号,那么C究竟是怎么处理的呢?开ADS编译运行了一下得到的答案是 : 1得到的地址是 0x30000001 ,2得到的地址是 0x30000002 。这里延伸出一个问题。记得以前看过一些C的面试题目,出现过类似的问题,关键是编译器是怎么判断的。
1中,加了括号,那么整个地址是先计算出来,传入的x=1 y=0很显然计算结果是0x30000001然后再做强制数据类型转换,变成16位指针地址。
而2当中,是先做了强制类型转换,那么后面计算的 y*240+x 结果也是为1的,但是因为前面的地址已经强制转换成 short 类型了,所以这个偏移是 1个short长度,而不是一个单纯的地址长度,short是16bit的,所以最后得到 addr应该是 0x30000002
查看全文
发表于:2008-11-07 10:27:51 ┆阅读(244) ┆评论(0)


关于线程的一点参透
前些日子在看 winsock 编程,有几个函数是 阻塞形IO,例如 accept ,程序运行到这里一直处于等待状态。在后在这里突然有了一个想法,将这个操作抽出来,成为一个独立的任务,那么如果多个任务,一个任务等是没有关系的,等就让他等,其他任务还能执行的。为什么能这样?这就是操作系统实现的线程调度了。这里一个一个的任务,就是所谓的线程了,所以对于多线程的编程,是有他的道理的,只是看具体的应用了。
看来网络编程将会涉及多线程操作。得好好学这部分。
另外,发现先看看linux的编……
查看全文
发表于:2008-08-25 08:52:50 ┆阅读(155) ┆评论(0)


调用DOS提供的 1ch 时钟中断
编译平台 WIN-TC (Turbo C2.0 为内核)
功能:
使用 DOS 的 1CH 中断。这个中断系统没有使用,是开放的,大约18ms中断一次。
可以提供给程序实用。调用的过程很简单,看下面的例子:
#include 查看全文
发表于:2008-07-18 16:39:25 ┆阅读(202) ┆评论(0)