[英]identifying structure members dynamically
有什么可能的方法在運行時檢查結構成員?
例如,考慮以下代碼,
#include <stdio.h>
struct example{
int value;
char name[32];
int score;
};
int main()
{
char in[256]={};
printf("enter member name :\n");
scanf("%s",in);
if(check_member(in) == 1) {
printf("struct example has member %s \n,in);
return 0;
}
printf("struct example has no member named %s \n,in);
return -1;
}
如果我向該程序輸入value
,則應打印
結構示例具有成員價值
當我輸入test
到該程序時,它應該打印
struct示例沒有名為test的成員
有沒有可能編寫函數check_member()
?
這是不可能的,因為在編譯之后,變量的名稱不會僅保存在堆棧的內存中,因此無法在運行時獲取數據。 當然,正如@Yunnosch所說,您可以將成員的名稱保存為字符串,然后使用strcmp。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.