我有兩個具有相同名稱的不同大小字段的數據類型。我試圖訪問基於參數我傳遞給函數這些領域---說C中的數組類型?
struct smallindex
{
unsigned char index;
unsigned int count;
};
struct largeindex
{
unsigned int index;
unsigned long count;
};
這可能是不do--理想的事情,但實現的一種方式,這是,有函數將一個指針視爲不同大小的指針。說,像這樣:
void function(int index, void *ptr)
{
array[] = {struct smallindex, struct largeindex};
array[index] *pointer = *ptr;
*pointer[1].index++;
return;
}
但是,編譯器根本不喜歡這個。我嘗試了幾個其他的實現 - 但他們都沒有工作。位字段大小的變化阻止了我嘗試聯合。這是可行的嗎?或者,如果我填充索引大小以確保它們的大小匹配(但它們的字段位置仍然不匹配) - 這是可行的嗎?
我確定編譯器不喜歡它。它離有效的C語法很遠。 –
@JohnBollinger雖然這在C中可行嗎?如果數據類型的大小相同,該怎麼辦? – Alex
無論你想要做什麼:首先讓它在一種數據類型下正常工作。請記住:相同的尺寸或不同的尺寸? –