您好!
通常、链接器会抛出不被调用的函数。 -- unused_section_elimination = on (默认值)
但是,如果我指定一个 同时用于调用 foo1()和不调用 foo2()函数的段,则不管如何,这两个函数都会被链接。
我想您可以说、#pragma 段被使用、因此不会被删除、但在使用默认段(.text)时、同样未使用的函数仍然会被删除。
在第二种情况下,是否有办法防止 foo2()与编译器选项链接而不更改代码?
背景是、这是 AUTOSAR 存储器映射系统(包括 TI 提供的 MCAL (例如 Adc_Mem 453.h))的问题、在该系统中、修改代码的范围有限。 由于所有函数都共享一个通用的#pragma 段、 因此链接所有未使用的函数、从而不必要地增大程序大小。