1
所以,我有這個功能,我得到了一些我想不出的奇怪錯誤。奇怪的類型轉換錯誤
void serialize_helper(huff *h, bits *history, char** a)
{
switch (h->tag) {
case LEAF:
char letter = h->h.leaf.c;
int arraynum = (int)letter;
a[arraynum] = bits_show(history);
putchar('\n');
return;
case NODE:
/* traverse left subtree */
bits_putlast('0',history);
serialize_helper(h->h.node.lsub,history, a);
bits_remove_last(history);
/* traverse right subtree */
bits_putlast('1',history);
serialize_helper(h->h.node.rsub,history, a);
bits_remove_last(history);
return;
default:
fprintf(stderr,"main.serialize_helper: bad tag\n");
exit(1);
}
}
我正在此誤差爲一個簡單的變量定義(從字符字母= ...;):
「huffenc.c:18:錯誤:預期表達之前 '字符'」
此外,編譯器作用像我的「信」的聲明不存在: 如果要定義「huffenc.c:19:錯誤未申報的‘信’(先在這個函數中使用)」
爲什麼我不允許在那裏聲明一個變量?我認爲這是允許的...... – 2013-03-13 21:18:23
你在C89模式下編譯? – 2013-03-13 21:19:33