语法知识
趟石过河
这个作者很懒,什么都没留下…
展开
-
高级指针
首先再来讨论下数组与指针的区别与不同。 带着这几个问题 数组名是什么?指针名又是什么? 比如 我们常看见的char **p_argv 和char *a_argv[] 。来比较一下二者当成参数的时候,p_argv是个二级指针 是个变量,a_argv是个什么呢?是个数组名不是个变量,那是不是这里会比p_argv少4个字节呢?要看编译器的处理方法?.对二级指针p_argv + 1是把里面放得一级指针转载 2012-09-10 15:59:29 · 487 阅读 · 0 评论 -
c语言对内存地址的直接操作(读ARM有感)
在ARM中看到了 #define rWTCON (*(volatile unsigned *)0x03000000)然后在函数调用中对这地址直接赋值,rWTCON = (PCLK / (100000-1) 刚看到这吓我一跳,以前只听说过没有看过,这里还真这样干了,这就是c语言中的直接对内存赋值,以上的语句还真有特色,这样用了宏还在下面移位操作,运用的这么规范化 ,比如我们要将某数中间的转载 2012-09-10 16:07:06 · 1960 阅读 · 0 评论 -
异或^ ,总线错误bus error
两个数交换,你想到怎么写呢,应用层的人大概只听说过利用另一个变量进行暂存值,还有哪些方法呢? 作为底层学习人员我想你必须知道利用数的位操作, *a ^= *b; *b ^= *a; *a ^= *b; (貌似异或有个直接的什么电路,几部电路就达到了 目得) (书上还写了如果两个相等 则它们两个的值均为0 ,我百思不能其解,用笔算也是交换啊,怎转载 2012-09-10 16:02:54 · 658 阅读 · 0 评论 -
位,static,struct
嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。 对这个问题有三种基本的反应 1)不知道如何下手。该被面者从没做过任何嵌入式系统的工作。 2) 用bit fields。Bit fields是被扔到C语言死角的东西,它保证你的代码在不同编译器之间是不可移植的,同时也保证了的你转载 2012-09-10 16:17:45 · 991 阅读 · 0 评论 -
几种常用的排序算法
1 快速排序 介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需转载 2012-09-11 09:40:58 · 848 阅读 · 0 评论 -
C语言运算符优先级和口诀
一共有十五个优先级: 1 () [] . -> 2 ! ~ -(负号) ++ -- &(取变量地址)* (type)(强制类型) sizeof 3 * / % 4 + - 5 >> 6 > >= 7 == != 8 & 9 ^ 10 | 11 && 12 || 13 ?转载 2013-11-13 16:39:47 · 499 阅读 · 0 评论