将void数组转换为typedef的最佳做法是什么?
这就是我目前的做法:
typedef struct {
int16_t left,right;
} SampleStereo16;
void *buffer[100000]; // data buffer
SampleStereo16* sample;
// insert something here that writes to the buffer
sample = (SampleStereo16*) buffer;
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常但不知何故,我觉得有一个更好的方法.我还想知道是否有方法让示例数组和缓冲区共享相同的内存(现在它们各自使用自己的内存).
这是我目前正在处理的完整代码:
#include "fmod.h"
#include "fmod.hpp"
#include "fmod_errors.h"
#include "wincompat.h"
#include <stdio.h>
typedef struct {
int16_t left,right;
} SampleStereo16;
void ERRCHECK(FMOD_RESULT result)
{
if (result != FMOD_OK)
{
printf("\nFMOD error! (%d) %s\n", result, FMOD_ErrorString(result));
if (result != FMOD_ERR_FILE_EOF)
exit(-1);
}
}
int main(int argc, char *argv[])
{
FMOD::System *system;
FMOD::Sound *sound; …Run Code Online (Sandbox Code Playgroud) c++ ×1