1
int a;
int *p;
p=&a;
*p=0x500;
a=(int)(*(&p));
a=(int)(&(*p));
if(a==(int)p)
printf("equal!");
else
printf("not equal!");
输出什么?
2
void foo(void)
{
unsigned int a=6;
int b=-20;
((a+b)>6) puts(">6"):puts("<=6");
}
输出什么
3
wince是否为RTOS?
4
举例说明WINCE下采用线程同步机制
5
在某工程中,设置绝对地址为0x67a9的整形变量为0xaa66
6
一个整形a 写两段代码 第一个设置a的bit3 第二个清a的bit3
7
_interrupt double compute_area(double radious)
{
double area=PI*radious*radious;
printf("area=%f",area);
return area;
}
找出错误
8
volatile 的含义
指出三个应用实例
1. equal
2.>6
5.(int*)0x67a9 = 0xaa66
6.a|=(1<3);a^=~(1<3);
7.中断函数没有返回值;中断函数不能传递参数;printf函数不可重入;不能用在中断函数中;
8.volatile表示变量是不稳定的,随时可能发生变化,比如某端口接收的数据,双端口缓存中的数据等都应定义为volatile。
wince不熟悉。
1
int a;
int *p;
p=&a; //送地址
*p=0x500;//赋值
a=(int)(*(&p));//获取指向p指针地址的值 =a。。。。
a=(int)(&(*p));//获取p的值 =a。。。。
if(a==(int)p)
printf("equal!");
else
printf("not equal!");
所以。。。。两个都应该是a,等于
2
void foo(void)
{
unsigned int a=6;
int b=-20;
((a+b)>6)//-14转下一定比6大
puts(">6"):puts(" <=6");//》6
}
3
wince是否为RTOS? 实时操作系统RTOS
是
4
举例说明WINCE下采用线程同步机制
.............进程锁?
5
在某工程中,设置绝对地址为0x67a9的整形变量为0xaa66
long p = 0x67a9
*p = 0xaa66
6
一个整形a 写两段代码 第一个设置a的bit3 第二个清a的bit3
int a ;
第一个设置a的bit3?设置成什么?
第二个清a的bit3 a|11111101 ...不懂了。。。
7
_interrupt double compute_area(double radious)//error
{
double area=PI*radious*radious;//error
printf("area=%f",area);
return area;//error
}
1.interrupt中断里不能带返回
2.貌似记得中断好像不能带浮点参数,c语言嵌入式修炼里面讲过。。忘记了。。。。汗
8
volatile 的含义
指出三个应用实例
volatile是可变变量定义。c语言嵌入式修炼也讲过。。。。。也忘记了- -汗
lz哪里是让我们放松。。。越做越一身冷汗。。。。以前看过的东西全忘光了。=- =
-14要转换进行比较的,有unsigned int 和 int 加减问题
你可以写程序看看设置个断点
其实不是-14,是4294967282。。。。。16进制的
应为是unsigned int。。。。
#include "stdafx.h"
#include "windows.h"
int _tmain(int argc, _TCHAR* argv[])
{
long i = 1;
unsigned int c=6;
int b=-20;
//unsigned int a = (c+b); >
int a = (c+b); //<=
if(a>6)
printf("%d>6",a);
else
printf(" %d<=6",c+b);
Sleep(2000);
}
你自己实验下吧
可是我用
printf("%d",a+b);
怎么输出的是-14?????
我不是解释了吗?无符号和有符号的区别。。
你的a是int型的吧。。。这个自己做做实验印象会更深的