nếu bạn có một cái gì đó như thế này:gì xảy ra với một chức năng c tĩnh mà không được gọi
int _tmain(int argc, _TCHAR* argv[]) {
int i;
#if (num>99)
i = func();
#else
i= func2();
#endif
return 0;
}
static int func()
{
return 1;
}
static int func2()
{
return 2;
}
Có hợp lý để hy vọng rằng tùy thuộc vào nếu num
là lớn hơn hoặc nhỏ hơn sau đó 99 ether func
hoặc func2
sẽ bị xóa khỏi mã thời gian chạy?
Hoặc tôi có cần phải nhúng các chức năng vào một số #if
để đạt được mục tiêu này không?
"Mã thời gian chạy" không phải là một phần của tiêu chuẩn C, do đó tiêu chuẩn C không thể trả lời câu hỏi này. Đó là vấn đề liên kết của bạn hoạt động như thế nào. Dead code removal chắc chắn là một chiến lược tối ưu hóa đã biết và được sử dụng có sẵn trên nhiều nền tảng. –