我是靠谱客的博主 迅速飞机,最近开发中收集的这篇文章主要介绍用__attribute__((deprecated))管理过时的代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在开发一些库的时候,API的接口可能会过时,为了提醒开发者这个函数已经过时。可以在函数声明时加上attribute((deprecated))属性,如此,只要函数被使用,在编译是都会产生警告,警告信息中包含过时接口的名称及代码中的引用位置。

attribute可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。 
attribute语法格式为:attribute ((attribute)) 
注意: 使用attribute的时候,只能函数的声明处使用attribute,

#include <stdio.h>
#include <stdlib.h>

#ifdef __GNUC__
#    define GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > (x) || __GNUC__ == (x) && __GNUC_MINOR__ >= (y))
#else
#    define GCC_VERSION_AT_LEAST(x,y) 0
#endif

#if GCC_VERSION_AT_LEAST(3,1)
#    define attribute_deprecated __attribute__((deprecated))
#elif defined(_MSC_VER)
#    define attribute_deprecated __declspec(deprecated)
#else
#    define attribute_deprecated
#endif


/* Variable Attribute */
attribute_deprecated int  variable_old = 0;

/* Function Attribute */
attribute_deprecated void function_old(void);

void function_old(void)
{
    printf("old function.n");
    return;
}

int main(void)
{
    variable_old++;

    function_old();

    return EXIT_SUCCESS;
}

在编译时会出现类似警告:

# gcc attribute_deprecated.c -o test 
attribute_deprecated.c: In function ‘main’: 
attribute_deprecated.c:33: warning: ‘variable_old’ is deprecated (declared at attribute_deprecated.c:20) 
attribute_deprecated.c:35: warning: ‘function_old’ is deprecated (declared at attribute_deprecated.c:25)

 

内容转载至:https://blog.csdn.net/benkaoya/article/details/52368638

最后

以上就是迅速飞机为你收集整理的用__attribute__((deprecated))管理过时的代码的全部内容,希望文章能够帮你解决用__attribute__((deprecated))管理过时的代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部