首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C語言數組能否記錄賦值變量的變量名?

     編輯:程式設計疑難解答

結論

不能。C 語言編譯後變量名消失 (符號表不保留在可執行文件中,除非調試信息),運行時無法通過數組獲取「哪個變量賦值給了數組」。

替代方案

  • 結構體/鍵值對:`struct { const char* name; int value; } arr[];` 手動記錄名稱。
  • 宏封裝:`#define SET(arr, i, var) do { arr[i].name=#var; arr[i].value=var; } while(0)` 編譯期字符串化變量名。
  • 調試信息:讀取 DWARF/PDB 需解析調試段,極其複雜,非通用方案。

參考

百度知道相關討論

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved