zoukankan      html  css  js  c++  java
  • #pragma pack(n)

    typedef struct _Wave_Header
    { 
    #pragma pack(1)
            char riff_id[4];                                           //"RIFF"                
            int32_t riff_datasize;                                         // RIFF chunk data size 
    
            char riff_type[4];                                       // "WAVE"               
            char fmt_id[4];                                          // "fmt "               
            int32_t fmt_datasize;                                        // fmt chunk data size  
            int16_t fmt_compression_code;                   // 1 for PCM            
            int16_t fmt_channels;                                   // 1 or 2               
            int32_t fmt_sample_rate;                                  // samples per second   
            int32_t fmt_avg_bytes_per_sec;                       // sample_rate*block_align
            int16_t fmt_block_align;                               // number bytes per sample bit_per_sample*channels/8
            int16_t fmt_bit_per_sample;                         // bits of each sample. 
    
            char data_id[4];                                         // "data"               
            int32_t data_datasize;                                       // data chunk size.     
    #pragma pack()
    }WaveHeader;

    编译器中提供了#pragma pack(n)来设定变量以n字节对齐方式。n字节对齐就是说变量存放的起始地址的偏移量有两种情况:第一、如果n大于等于该变量所占用的字节数,那么偏移量必须满足默认的对齐方式,第二、如果n小于该变量的类型所占用的字节数,那么偏移量为n的倍数,不用满足默认的对齐方式。结构的总大小也有个约束条件,分下面两种情况:如果n大于所有成员变量类型所占用的字节数,那么结构的总大小必须为占用空间最大的变量占用的空间数的倍数;否则必须为n的倍数。

  • 相关阅读:
    作业 第四 张垚
    软件测试课堂练习 张垚
    增删改查
    计算器 作业
    activity 张垚
    第四作业 张垚
    第六周作业
    jsp第四周作业
    jsp求1-100之间的素数和
    JSP第一次测试
  • 原文地址:https://www.cnblogs.com/douzujun/p/10642826.html
Copyright © 2011-2022 走看看