Wince
开始学习WinCe,前来请教一些问题:
1、
#define CAM_CODEC_SACLER_START_BIT(1<<15)
(1<<15)什么意思?
2、
#define CAM_CCIR422(1)
#define CAM_RGB16B0
0和1为什么一个用(),一个不用?
3、
typedef struct _YUVINFO
{
int frame_width;
int frame_height;
unsigned int frame_stamp;
} YUVINFO;
直接用struct 定义不就行了,加上typedef有什么用?
4、
#define CIS_SIG ' SIC'
#define VALID_CONTEXT( p ) \
( p && p->Sig && CIS_SIG == p->Sig )
VALID_CONTEXT( p )是什么?参数p代表什么类型?
[解决办法]
1,2都是简单的宏定义
1<<15 既:1000 0000 0000 0000
其实这么做,无非就是要操作某个寄存器的第15位而已
置1或者清零
3 typedef其实就是自己进行一个类型定义
比如:typedef unsigned int uint
一样的道理
这里YUVINFO就代表前面的结构体类型了
4
#define VALID_CONTEXT( p ) \
( p && p->Sig && CIS_SIG == p->Sig )
这也是一个宏定义,其实相当于定义了一个函数
VALID_CONTEXT( p )
{
( p && p->Sig && CIS_SIG == p->Sig )
}
p是参数。
我自己的理解,不一定正确。
不过建议楼主简单的补一下C语言的内容。
[解决办法]
1、(1<<15)代表将1向左移动15位,最后变成1000 0000 0000 0000
2、用()代表一个整体,不用那么就是分散的,此处用与不用都是一样的,有些时候不一样
3、用typedef之后,其定义的结构体就相当于一种数据类型,在任何地方都可以用
4、VALID_CONTEXT( p )相当于定义一个函数,但是这种函数相当于内联函数,直接取代