在我的代码中,有如下代码
#ifndef BDB_ZCL_TYPE_CLUSTER #define BDB_ZCL_TYPE_CLUSTER "bdb_zcl_type_cluster.c" #endif #include BDB_ZCL_TYPE_CLUSTER
但是我想在不同的project中把BDB_ZCL_TYPE_CLUSTER替换掉,因为bdb_zcl_type_cluster.c是一个公共文件,在predefined symbol中添加( BDB_ZCL_TYPE_CLUSTER="bdb_zcl_type_cluster.c"),编译报错。为什么IAR中可以支持这种,但是CCS中缺不支持
Susan Yang:
感觉有点没太懂您的意思?您现在是要将BDB_ZCL_TYPE_CLUSTER替换为什么?可以在工程内使用 Edit–>Find/Repalce来替换
gaoyang9992006:
没用过这种宏定义操作呢,一般就是替换,没试过,回头我在Keil试试看。
Aries Lord:
回复 Susan Yang:
把要include的文件做成宏定义,在源码里面可以,但是在全局宏定义中无论用predefined symbol还是opts文件都会编译不过。
Susan Yang:
回复 Aries Lord:
您是不是打开了 -check_misra?
MISRA-C rule 19.4: "C macros shall only expand to a braced initialiser, a constant, a string literal, a parenthesised expression, a type qualifier, a storage class specifier, or a do-while-zero construct."