試想一下,下面的函數在靜態庫中存在(*。A,* .LIB):死代碼消除在switch語句
int func_foo(int i) {
switch (i) {
case 1:
return foo_bar();
case 2:
return foo_baz();
case 3:
return foo_bat();
default:
return -1;
}
}
如果這個庫調用此功能的用戶,只有通過在1
,會(或可以)編譯器刪除對2
和3
的呼叫嗎?
編譯器是否也會刪除foo_baz()
和foo_bat()
函數(如果它們沒有在其他函數中被引用)(也就是死代碼消除)?
「這個圖書館的用戶」如何攝取圖書館?參考源代碼或一些現成的二進制文件? –
假設它是一個編譯的靜態庫(例如* .a或等價的)。 – MarkP