0
假設我試圖實現一個「菜單」,要求用戶輸入一個命令,然後調用執行該命令的函數。我決定聲明一個包含每個命令名的字符串數組,然後將該用戶的輸入與該數組中的字符串進行比較,以瞭解接下來要做什麼,而不是爲每個命令設置一組條件。爲每個命令實現一個沒有條件的設備菜單
喜歡的東西:
char* commands[] = {"cmd", "cmd1", "cmd2"};
然後:
while(strcmp(cmd, "end") != MATCH) {
printf("?:");
scanf("%s", cmd);
for(i = 0; i < CMD_NUMBER; i++) {
if(strcmp(cmd, commands[i]) == MATCH) {
/*do something */
}
}
}
有沒有一種方法調用的函數,而不必在這一點上的任何條件語句或switch語句?我正在考慮實現一個函數指針的結構,每個命令都有一個成員,然後使用它,但我不確定如何甚至可能。
謝謝!我有點好奇,至於如何分配功能的地址,更具體地說,我想我想知道什麼時候鏈接器爲函數分配內存地址,然後如何在數組初始化時發揮作用像這樣? – Kafka
它只是。在這方面沒有什麼特別的功能名稱。 – usr2564301