1.API过时后,抛出的警告宏:
__THROW __attribute_deprecated__
__THROW__宏定义如下:
- </usr/include/argp.h>
-
#ifndef __THROW
-
#define __THROW
-
#endif
-
-
#ifndef __THROW
-
#ifndef __GNUC_PREREQ
-
#define __GNUC_PREREQ(maj,min) (0)
-
#endif
-
#if defined __cplusplus && __GNUC_PREREQ(2,8)
-
#define __THROW throw()
-
#else
-
#define __THROW
-
#endif
- #endif
从上面的定义可以看出,THROW宏在C语言中为空,现在来看__attribute_deprecated__宏定义:
- </usr/include/sys/cdefs.h>
-
#if __GNU_PREREQ (3,2)
-
#define __attribute_deprecated__ __attribute__((__deprecated__))
-
#else
-
#define __attribute_deprecated__
-
#endif
-
-
</usr/include/argp.h>
-
#ifndef __attribute__
-
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT__ANSI__
-
#define __attribute__(Spec)
- #endif
__attribute__,__deprecated__为gcc的一个
更多的gcc有用扩展见:http://www.ibm.com/developerworks/linux/library/l-gcc-hacks/