📄 dtor_rec.h
字号:
/*******************
*
* Copyright 1998 IAR Systems. All rights reserved.
*
* $Revision: 1.6 $
*
* $Log: dtor_rec.h $
* Revision 1.6 2004/04/26 13:36:32Z mats
* Removed remarks and fixed prototypes
* Revision 1.5 2003/10/10 12:26:58Z grzm
* Handle vector construction/destruction in different memories.
* Revision 1.4 2002/03/15 13:28:33Z Grzm
* SCR11675: Avoid calling destructors with an extra parameter.
* Revision 1.3 1998/10/28 14:23:47 Grzm
* Use double indirection for next field in __dtor_rec.
* Revision 1.2 1998/09/28 12:21:29 AndersL
*
********************/
#ifndef _DTOR_REC_H
#define _DTOR_REC_H
#ifndef FUNCATTR
#define FUNCATTR
#endif
typedef FUNCATTR void (* __func_ptr) (void);
typedef FUNCATTR void (* __def_dtor_ptr) (void *);
#pragma language = extended
#define __VAR_MEM_HELPER1__(M, I) \
typedef FUNCATTR void (* M##_dtor_ptr) (void M *); \
typedef FUNCATTR void (* M##_ctor_ptr) (void M *); \
typedef FUNCATTR void (* M##_cctor_ptr)(void M *, void M *);
__VAR_MEMORY_LIST1__()
#undef __VAR_MEM_HELPER1__
#pragma language = default
typedef struct __dtor_rec __dtor_rec;
struct __dtor_rec {
__dtor_rec const * * next;
void * object;
__func_ptr dtor;
};
/* Define _DIFUNCT_MEMORY if the DIFUNCT segment is not located in
default memory. */
#ifdef _DIFUNCT_MEMORY
#pragma language = extended
typedef __func_ptr _DIFUNCT_MEMORY * __difunct_ptr;
#pragma language = default
#else /* !_DIFUNCT_MEMORY */
typedef __func_ptr * __difunct_ptr;
#endif /* _DIFUNCT_MEMORY */
_EXTERN_C
void __record_needed_destruction( __dtor_rec const * );
void __call_ctors(__difunct_ptr, __difunct_ptr);
#pragma object_attribute = __noreturn
void __pure_virtual_called(void);
void __call_dtors(void);
_END_EXTERN_C
#endif /*_DTOR_REC_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -