typedef struct _FOURBYTE{
unsigned c1:8;
unsigned c2:8;
unsigned c3:8;
unsigned c4:8;
}FOURBYTE;
上面定义了一个什么结构?????
#define DSP_STD_DANG 0x0001
这又是定义了一个什么东东????

解决方案 »

  1.   

    明显是存储结构.C1.C2.C3.C4都占用8位.
    欲编译系统
      

  2.   

    #define DSP_STD_DANG 0x0001
    这又是定义了一个什么东东????
    -->定义静态值呀。是个16位的数值。
      

  3.   

    这是bit field,就是这个结构中的数据类型是位(bits)
    unsigned就是unsigned int ,32bits系统中是32位的。 
    以vc+windows为例
    c1,c2,c3,c4各占8位,具体在内存中的分配与编译的系统,操作系统,硬件都有关,所以这样写的移植性不好。
    以vc+windows为例,简单理解,其实是一个32位的数,最左边8位是c1,然后8位是c2,...
      

  4.   

    typedef struct _FOURBYTE{
    unsigned c1:8;
    unsigned c2:8;
    unsigned c3:8;
    unsigned c4:8;
    }FOURBYTE;
    定义了一个存储结构共32位c1、c2、c3、c4个占8位
    如果还是不明白看看C的位运算#define DSP_STD_DANG 0x0001
    定义了一个宏 在编译时其后的所有DSP_STD_DANG用0x0001代替
    这是C中定义常量最常用的方法(其实不能叫常量,在C中没有常量,这只是一个表示方法)
      

  5.   

    #define DSP_STD_DANG 0x0001
    就是以后见到 DSP_STD_DANG 就直接换为0x0001
    当然引号里就不换了。