⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gcc.h

📁 南京航空航天大学开发的一个类Unix和Linux的操作系统,好不好看看就知道了,
💻 H
字号:
#ifndef _LIBGCC_H#define _LIBGCC_H#define asmlinkage extern "C" __attribute__((regparm(0)))#ifndef __ASSEMBLY__extern void checkoffsetof();#endif#ifdef __STDC__#define STRCAT(a,b) a##b#else#define STRCAT(a,b) a/**/b#endif#ifdef __ASSEMBLY__#define ALIGN .balign 16,0x90#define ENTRY(name) \	.globl name; \	ALIGN; \	STRCAT(name,:)#endif/*class base_class{public:	long base_magic;	virtual void interface() = 0;};class derive_class{public:	long derive_magic;	void interface(); };  There is no standard about where c++ compiler insert the the virtual tableponinter inside the object, but many macros defined in include/queue.h expect the virtual table ponter appears after the last member of the base class.  The following function doesn't work if compiled by microsoft c++, because microsoft c++ insert the virtual table pointer before the first member of the base class.void check_vtbl_ptr(){	derive_class * derive = new base_class();	derive->base_magic = BASE_MAGIC;	derive->derive_magic = DERIVE_MAGIC;	long * l = (long *) derive;	if ((sizeof(base_class) == 2 * sizeof(long)) && 	    (sizeof(derive_class) == sizeof(long) &&	    (l[0] == BASE_MAGIC) &&              l[1] is the virtual table pointer            (l[2] == DERIVE_MAGIC))		printk("check virtual table pointer passed \n");	else		panic("BAD: gcc dones't insert the virtual table pointer at desired address\n");};*/#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -