我不確定這是否至少可能,但我想使用具有元素的確切名稱的變量來訪問我的結構中的元素。我的程序對結構的成員進行操作,它取決於用戶選擇的列,但爲了使它更簡單(因爲這不是要點),我要寫一些簡單的線條,所以它會是這樣的:如何使用具有元素的確切名稱的變量訪問結構的元素?
(比方說,我已經填寫了名單與其他功能,但是這不是主要的點都不是,所以我不會把它)
結構,這將被用於雙鏈表中的每個節點(每個節點表示類似於具有兩列的表中的一行)
typedef struct row {
float A, B;
struct row *prev, *next;
} _row;
主要
int main(){
char column;
printf("Which column would you like to see? (A or B): ");
scanf("%c",&column);
show_column(column);
system("PAUSE");
}
而且功能
void show_column(char column){
_row *aux;
aux=start;
while(aux->next!=NULL){
printf("\n %.2f",aux->column);
aux=aux->next;
}
//this is because that cycle is not going to show the last node
printf("\n %.2f",aux->column);
}
「開始」 是_row了。它被修改爲從插入節點的相同函數中的列表中指向開始。
我想知道的是如何使這部分的功能:
printf("\n %.2f",aux->column);
由於「列」是不是從結構的成員,但它是應該包含一個名稱的變量的成員(A或B)。
我需要這個,所以我不必重複相同的代碼,但使用「如果」和只是一個字母(B)不同。
對不起,如果拼寫和語法有問題,我的英語不太好,並且非常感謝您的幫助!
我認爲你正在努力實現運行時polyorphism。我不知道如何在c中實現這一點。但在oop(C++或Java)中這是很正常的。 –