c语言如何强制编译未使用的const数组量

来源:百度知道 编辑:UC知道 时间:2024/05/18 23:43:24
现在设计了一个产品,想要加进去一个类似const unsigned char myID[]={1,2,3,4,5,6};这样的产品防伪信息放在程序段中。但是每次编译时都被编译器跳过了,因为主程序里没有调用过myID。请问各位高手,除了调用一次myID来加入这些信息的方法以外,还有没有什么办法可以强制编译这个常量数组。我已经试过#ifdef的方法了,也无效。

那就引用一次:
const unsigned char myID[]={1,2,3,4,5,6};
void* p = (void*)myID;

如果这样也被编译器优化了的话:

volatile const unsigned char myID[]={1,2,3,4,5,6};

vc的话还有一招:

#pragma optimize("", off)
const unsigned char myID[]={1,2,3,4,5,6};
#pragma optimize("", on)

但是只能在函数外面做