函数属性(__attribute__)请教
#define _CRTIMP //gcc 中定义的宏 利用 cpp -E -dM test.c |sort 查看到的宏声明
//一下是在setjmp.h 和_mingw.h中查看到的宏声明
#define _CRTIMP __attribute__ ((dllimport))
#define __cdecl __attribute__ ((__cdecl__))
#define __MINGW_NOTHROW __attribute__ ((__nothrow__))
#define __MINGW_ATTRIB_NORETURN __attribute__ ((__noreturn__))
这两个声明:函数属性看不懂 不知道__MINGW_NOTHROW 等的作用
longjmp声明: _CRTIMP void __cdecl __MINGW_NOTHROW longjmp (jmp_buf, int) __MINGW_ATTRIB_NORETURN;
setjmp声明: _CRTIMP int __cdecl __MINGW_NOTHROW _setjmp (jmp_buf);
请教:求函数可用属性列表,函数属性在声明中出现的顺序是不是没有什么特殊要求
__attribute__ 是gcc中的关键字,__cdecl__ 、 __nothrow__ 、 __noreturn__是否也是gcc中关键字?那他们和cdecl nothrow noreturn 又有什么分别?是为了增强可移植性吗?