How to deprecate a macro in GCC?

前端 未结 4 717
醉话见心
醉话见心 2021-01-04 05:20

i Know how to use attribute deprecated to deprecate a function like this:

int old_fn () __attribute__ ((deprecated));

But

4条回答
  •  粉色の甜心
    2021-01-04 05:43

    Nice, elegant solution, however depending on C99 being enabled (works with gcc 4.8.2 or later, not tested on earlier versions):

    #define DEPRECATED_MACRO1 _Pragma ("GCC warning \"'DEPRECATED_MACRO1' macro is deprecated\"") 7
    #define DEPRECATED_MACRO2(...) _Pragma ("GCC warning \"'DEPRECATED_MACRO2' macro is deprecated\"") printf(__VA_ARGS__)
    
    int main(int argc, char*argv[])
    {
        int n = DEPRECATED_MACRO1;
        DEPRECATED_MACRO2("%d\n", n);
        return 0;
    }
    

提交回复
热议问题