如何让gcc忽略函数从未调用过?

lex*_*xer 1 c gcc

#include <stdio.h>

void func(){
  printf("123\n");
}

int main(){
  printf("hi\n");
}
Run Code Online (Sandbox Code Playgroud)

似乎无论我如何编译它,func总是存在于二进制目标中?

cni*_*tar 6

默认情况下,函数在C中具有外部链接.使它static应该通知链接器外部不需要它,它应该将其保留.