- 博客(5)
- 资源 (1)
- 收藏
- 关注
转载 c语言中volatile关键字的作用[转载]
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存 储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果 这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这样的程序:
2009-07-09 16:34:00 358
转载 考查嵌入式C开发人员的最好的0x10道题 [转载]
编者按:非常基本关于C语言的问题,一个信息类(计算机,资讯工程,电子工程, 通信工程)专业的本科毕业生应该达到的水平。题目不难,全部都能快速地答完,当然也需要一定的知识储备。对于大多数人,我们预期你可能答错 3) 4) 15)题,所以答错3道以内的,我们认为你很棒答错5道题以内,我们认为你还不错(你还可能答错第9题)如果你有6道以上的题目不能答对,基本上我们都不好说什么了....约定: 1
2009-07-09 18:11:00 384
转载 C语言中关键字volatile的含义[转载]
volatile 的意思是“易失的,易改变的”。这个限定词的含义是向编译器指明变量的内容可能会由于其他程序的修改而变化。通常在程序中申明了一个变量时,编译器会尽量把它存放在通用寄存器中,例如ebx。当CPU把其值放到ebx中后就不会再关心对应内存中的值。若此时其他程序(例如内核程序或一个中断)修改了内存中它的值,ebx中的值并不会随之更新。为了解决这种情况就创建了volatile限定词,让代码在引
2009-07-09 16:42:00 640
原创 求累加和,即 1+2+3+...+n 0 <n
求累加和,即 1+2+3+...+n 0 三个人用三种程序实现: (1) for 循环 int CumulativeAdd(int n) { int ret = 0; for(int i=1; in; i++) ret += i; return ret; } (2) 递归 int CumulativeAd
2009-06-21 22:24:00 1378
原创 将一个整数n转换成换成一个字符串。如将1234转换为"1234"。
这类问题通常用递归就可以简单解决了,示例代码如下: (一)递归形式 #include char* convert( char*, int ); int main(void) { char a[30] = {0}; convert(a, 12345); printf("%s", a); return 0; } char* convert( char *p, int
2009-06-21 21:01:00 2210
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人