使用.wav文件... *ptr_8 和 *ptr_16 - 指向样本数组的指针。
我想让程序根据标头的数据声明这些指针(如果 8 bitsPerSample ---> 声明 *ptr_8 ...)
if ( hdr.S1.BitsPerSample == 8 ) // Declaring array for samples. Depending
// on header's data (8 or 16 bits).
unsigned char *ptr_8;
else
if ( hdr.S1.BitsPerSample == 16 )
unsigned short *ptr_16;
问题是它写道:
error: expected expression before 'unsigned'
到这两行(必须声明*ptr_8
和声明的地方*ptr_16
),尽管我看不到这种行为的原因。请告诉我有什么问题。
更新:
事实证明,声明是一个编译时概念(见下面接受的答案)。
编译时已经声明了变量,因此它需要机器的资源一次,然后(当您编译应用程序时)它们都已经在那里声明了。这意味着这是尝试优化程序的最糟糕的方法之一......