/** copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>** This file is part of FFmpeg.** FFmpeg is free software; you can redistribute it and/or* modify it under the terms of the GNU Lesser General Public* License as published by the Free Software Foundation; either* version 2.1 of the License, or (at your option) any later version.** FFmpeg is distributed in the hope that it will be useful,* but WITHOUT ANY WARRANTY; without even the implied warranty of* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU* Lesser General Public License for more details.** You should have received a copy of the GNU Lesser General Public* License along with FFmpeg; if not, write to the Free Software* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA*//*** @file* Macro definitions for various function/variable attributes*/#ifndef AVUTIL_ATTRIBUTES_H#define AVUTIL_ATTRIBUTES_H#ifdef __GNUC__# define AV_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > (x) || __GNUC__ == (x) && __GNUC_MINOR__ >= (y))# define AV_GCC_VERSION_AT_MOST(x,y) (__GNUC__ < (x) || __GNUC__ == (x) && __GNUC_MINOR__ <= (y))#else# define AV_GCC_VERSION_AT_LEAST(x,y) 0# define AV_GCC_VERSION_AT_MOST(x,y) 0#endif#ifdef __has_builtin# define AV_HAS_BUILTIN(x) __has_builtin(x)#else# define AV_HAS_BUILTIN(x) 0#endif#ifndef av_always_inline#if AV_GCC_VERSION_AT_LEAST(3,1)# define av_always_inline __attribute__((always_inline)) inline#elif defined(_MSC_VER)# define av_always_inline __forceinline#else# define av_always_inline inline#endif#endif#ifndef av_extern_inline#if defined(__ICL) && __ICL >= 1210 || defined(__GNUC_STDC_INLINE__)# define av_extern_inline extern inline#else# define av_extern_inline inline#endif#endif#if AV_GCC_VERSION_AT_LEAST(3,4)# define av_warn_unused_result __attribute__((warn_unused_result))#else# define av_warn_unused_result#endif#if AV_GCC_VERSION_AT_LEAST(3,1)# define av_noinline __attribute__((noinline))#elif defined(_MSC_VER)# define av_noinline __declspec(noinline)#else# define av_noinline#endif#if AV_GCC_VERSION_AT_LEAST(3,1) || defined(__clang__)# define av_pure __attribute__((pure))#else# define av_pure#endif#if AV_GCC_VERSION_AT_LEAST(2,6) || defined(__clang__)# define av_const __attribute__((const))#else# define av_const#endif#if AV_GCC_VERSION_AT_LEAST(4,3) || defined(__clang__)# define av_cold __attribute__((cold))#else# define av_cold#endif#if AV_GCC_VERSION_AT_LEAST(4,1) && !defined(__llvm__)# define av_flatten __attribute__((flatten))#else# define av_flatten#endif#if AV_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/*** Disable warnings about deprecated features* This is useful for sections of code kept for backward compatibility and* scheduled for removal.*/#ifndef AV_NOWARN_DEPRECATED#if AV_GCC_VERSION_AT_LEAST(4,6) || defined(__clang__)# define AV_NOWARN_DEPRECATED(code) \_Pragma("GCC diagnostic push") \_Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \code \_Pragma("GCC diagnostic pop")#elif defined(_MSC_VER)# define AV_NOWARN_DEPRECATED(code) \__pragma(warning(push)) \__pragma(warning(disable : 4996)) \code; \__pragma(warning(pop))#else# define AV_NOWARN_DEPRECATED(code) code#endif#endif#if defined(__GNUC__) || defined(__clang__)# define av_unused __attribute__((unused))#else# define av_unused#endif/*** Mark a variable as used and prevent the compiler from optimizing it* away. This is useful for variables accessed only from inline* assembler without the compiler being aware.*/#if AV_GCC_VERSION_AT_LEAST(3,1) || defined(__clang__)# define av_used __attribute__((used))#else# define av_used#endif#if AV_GCC_VERSION_AT_LEAST(3,3) || defined(__clang__)# define av_alias __attribute__((may_alias))#else# define av_alias#endif#if (defined(__GNUC__) || defined(__clang__)) && !defined(__INTEL_COMPILER)# define av_uninit(x) x=x#else# define av_uninit(x) x#endif#if defined(__GNUC__) || defined(__clang__)# define av_builtin_constant_p __builtin_constant_p# define av_printf_format(fmtpos, attrpos) __attribute__((__format__(__printf__, fmtpos, attrpos)))#else# define av_builtin_constant_p(x) 0# define av_printf_format(fmtpos, attrpos)#endif#if AV_GCC_VERSION_AT_LEAST(2,5) || defined(__clang__)# define av_noreturn __attribute__((noreturn))#else# define av_noreturn#endif#endif /* AVUTIL_ATTRIBUTES_H */
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。