好吧,我有如何將結構添加到C中的結構數組?
typedef struct
{
enum COMMAND command;
enum CMD_SOURCE source;
CHAR parameters[16];
} focuserCommand;
定義爲這樣的結構......我試圖做出將這種類型的結構的一個實例添加到focuserCommands陣列功能。數組的定義是這樣的...
extern focuserCommand CommandBuffer[CMD_BUFFER_SIZE];
我想寫應該採取一個指向focuserCommand
並將其添加到CommandBuffer
功能。我正在實現CommandBuffer作爲FIFO環形緩衝區,所以我知道我需要移動尾部forwared,以便其他函數可以看到緩衝區包含數據。 CmdBuffHead和CmdBuffTail表示緩衝區的讀寫指針。寫入被添加到尾部,從頭部讀取。
void AddCmdToBfr(focuserCommand * cmd)
{
// What goes here to add the struct pointed to by cmd to
// element CmdBuffTail of the buffer?
CmdBuffTail++;
}
我試過這個,但我得到一個編譯器錯誤`CommandBuffer [CmdBuffTail ++] = cmd;`說在賦值中不兼容的類型。是因爲cmd是一個指向結構體的指針而不是結構本身? – PICyourBrain 2011-01-11 15:03:31