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

📄 port-structs.c

📁 c++写的一个脚本解释器
💻 C
字号:
/* To know more about structure passing conventions, * compile this to assembly code: $(CC) -O -S port-structs.c */typedef struct { char x1; } C1;typedef struct { char x1,x2; } C2;typedef struct { char x1,x2,x3; } C3;typedef struct { char x1,x2,x3,x4; } C4;typedef struct { char x1,x2,x3,x4,x5; } C5;typedef struct { char x1,x2,x3,x4,x5,x6; } C6;typedef struct { char x1,x2,x3,x4,x5,x6,x7; } C7;typedef struct { char x1,x2,x3,x4,x5,x6,x7,x8; } C8;typedef struct { char x1,x2,x3,x4,x5,x6,x7,x8,x9; } C9;typedef struct { char x1,x2,x3,x4,x5,x6,x7,x8,x9,x10; } C10;typedef struct { char x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11; } C11;typedef struct { char x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12; } C12;typedef struct { char x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13; } C13;typedef struct { char x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14; } C14;typedef struct { char x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15; } C15;typedef struct { char x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16; } C16;typedef struct { char x[1]; } CA1;typedef struct { char x[2]; } CA2;typedef struct { char x[3]; } CA3;typedef struct { char x[4]; } CA4;typedef struct { char x[5]; } CA5;typedef struct { char x[6]; } CA6;typedef struct { char x[7]; } CA7;typedef struct { char x[8]; } CA8;typedef struct { char x[9]; } CA9;typedef struct { char x[10]; } CA10;typedef struct { char x[11]; } CA11;typedef struct { char x[12]; } CA12;typedef struct { char x[13]; } CA13;typedef struct { char x[14]; } CA14;typedef struct { char x[15]; } CA15;typedef struct { char x[16]; } CA16;typedef struct { short x1; } S1;typedef struct { short x1,x2; } S2;typedef struct { short x1,x2,x3; } S3;typedef struct { short x1,x2,x3,x4; } S4;typedef struct { short x1,x2,x3,x4,x5; } S5;typedef struct { short x1,x2,x3,x4,x5,x6; } S6;typedef struct { short x1,x2,x3,x4,x5,x6,x7; } S7;typedef struct { short x1,x2,x3,x4,x5,x6,x7,x8; } S8;typedef struct { short x[1]; } SA1;typedef struct { short x[2]; } SA2;typedef struct { short x[3]; } SA3;typedef struct { short x[4]; } SA4;typedef struct { short x[5]; } SA5;typedef struct { short x[6]; } SA6;typedef struct { short x[7]; } SA7;typedef struct { short x[8]; } SA8;typedef struct { int x1; } I1;typedef struct { int x1,x2; } I2;typedef struct { int x1,x2,x3; } I3;typedef struct { int x1,x2,x3,x4; } I4;typedef struct { int x1,x2,x3,x4,x5; } I5;typedef struct { int x1,x2,x3,x4,x5,x6; } I6;typedef struct { int x1,x2,x3,x4,x5,x6,x7; } I7;typedef struct { int x1,x2,x3,x4,x5,x6,x7,x8; } I8;typedef struct { int x[1]; } IA1;typedef struct { int x[2]; } IA2;typedef struct { int x[3]; } IA3;typedef struct { int x[4]; } IA4;typedef struct { int x[5]; } IA5;typedef struct { int x[6]; } IA6;typedef struct { int x[7]; } IA7;typedef struct { int x[8]; } IA8;typedef struct { long x1; } L1;typedef struct { long x1,x2; } L2;typedef struct { long x1,x2,x3; } L3;typedef struct { long x1,x2,x3,x4; } L4;typedef struct { long x1,x2,x3,x4,x5; } L5;typedef struct { long x1,x2,x3,x4,x5,x6; } L6;typedef struct { long x1,x2,x3,x4,x5,x6,x7; } L7;typedef struct { long x1,x2,x3,x4,x5,x6,x7,x8; } L8;typedef struct { long x1,x2,x3,x4,x5,x6,x7,x8,x9; } L9;typedef struct { long x[1]; } LA1;typedef struct { long x[2]; } LA2;typedef struct { long x[3]; } LA3;typedef struct { long x[4]; } LA4;typedef struct { long x[5]; } LA5;typedef struct { long x[6]; } LA6;typedef struct { long x[7]; } LA7;typedef struct { long x[8]; } LA8;typedef struct { long x[9]; } LA9;typedef struct { float x1; } F1;typedef struct { float x1,x2; } F2;typedef struct { float x1,x2,x3; } F3;typedef struct { float x1,x2,x3,x4; } F4;typedef struct { float x[1]; } FA1;typedef struct { float x[2]; } FA2;typedef struct { float x[3]; } FA3;typedef struct { float x[4]; } FA4;typedef struct { double x1; } D1;typedef struct { double x1,x2; } D2;typedef struct { double x[1]; } DA1;typedef struct { double x[2]; } DA2;typedef struct { char c; float f; } CF;typedef struct { float f; int i; } FI;typedef struct { float f; int i,j; } FI2;typedef struct { float f; int i,j,k; } FI3;typedef struct { double d; int i; } DI;typedef struct { double d; int i,j; } DI2;typedef struct { double d; int i,j,k; } DI3;typedef struct { float f; double d; } FD;typedef struct { float f,g; double d; } F2D;typedef struct { double d; float f; } DF;typedef struct { double d; float f,g; } DF2;#if defined(__STDC__) || defined(__cplusplus)#define TEST_STRUCT_ARG(_type_)  \  extern _type_ extern_##_type_;					\  void set_##_type_ (_type_ arg) { extern_##_type_ = arg; }#define TEST_STRUCT_RETURN(_type_)  \  extern _type_ extern_##_type_;					\  _type_ get_##_type_ () { return extern_##_type_; }#else#define TEST_STRUCT_ARG(_type_)  \  extern _type_ extern_/**/_type_;					\  void set_/**/_type_ (arg) _type_ arg; { extern_/**/_type_ = arg; }#define TEST_STRUCT_RETURN(_type_)  \  extern _type_ extern_/**/_type_;					\  _type_ get_/**/_type_ () { return extern_/**/_type_; }#endifTEST_STRUCT_ARG(C1)TEST_STRUCT_ARG(C2)TEST_STRUCT_ARG(C3)TEST_STRUCT_ARG(C4)TEST_STRUCT_ARG(C5)TEST_STRUCT_ARG(C6)TEST_STRUCT_ARG(C7)TEST_STRUCT_ARG(C8)TEST_STRUCT_ARG(C9)TEST_STRUCT_ARG(C10)TEST_STRUCT_ARG(C11)TEST_STRUCT_ARG(C12)TEST_STRUCT_ARG(C13)TEST_STRUCT_ARG(C14)TEST_STRUCT_ARG(C15)TEST_STRUCT_ARG(C16)TEST_STRUCT_ARG(CA1)TEST_STRUCT_ARG(CA2)TEST_STRUCT_ARG(CA3)TEST_STRUCT_ARG(CA4)TEST_STRUCT_ARG(CA5)TEST_STRUCT_ARG(CA6)TEST_STRUCT_ARG(CA7)TEST_STRUCT_ARG(CA8)TEST_STRUCT_ARG(CA9)TEST_STRUCT_ARG(CA10)TEST_STRUCT_ARG(CA11)TEST_STRUCT_ARG(CA12)TEST_STRUCT_ARG(CA13)TEST_STRUCT_ARG(CA14)TEST_STRUCT_ARG(CA15)TEST_STRUCT_ARG(CA16)TEST_STRUCT_ARG(S1)TEST_STRUCT_ARG(S2)TEST_STRUCT_ARG(S3)TEST_STRUCT_ARG(S4)TEST_STRUCT_ARG(S5)TEST_STRUCT_ARG(S6)TEST_STRUCT_ARG(S7)TEST_STRUCT_ARG(S8)TEST_STRUCT_ARG(SA1)TEST_STRUCT_ARG(SA2)TEST_STRUCT_ARG(SA3)TEST_STRUCT_ARG(SA4)TEST_STRUCT_ARG(SA5)TEST_STRUCT_ARG(SA6)TEST_STRUCT_ARG(SA7)TEST_STRUCT_ARG(SA8)TEST_STRUCT_ARG(I1)TEST_STRUCT_ARG(I2)TEST_STRUCT_ARG(I3)TEST_STRUCT_ARG(I4)TEST_STRUCT_ARG(I5)TEST_STRUCT_ARG(I6)TEST_STRUCT_ARG(I7)TEST_STRUCT_ARG(I8)TEST_STRUCT_ARG(IA1)TEST_STRUCT_ARG(IA2)TEST_STRUCT_ARG(IA3)TEST_STRUCT_ARG(IA4)TEST_STRUCT_ARG(IA5)TEST_STRUCT_ARG(IA6)TEST_STRUCT_ARG(IA7)TEST_STRUCT_ARG(IA8)TEST_STRUCT_ARG(L1)TEST_STRUCT_ARG(L2)TEST_STRUCT_ARG(L3)TEST_STRUCT_ARG(L4)TEST_STRUCT_ARG(L5)TEST_STRUCT_ARG(L6)TEST_STRUCT_ARG(L7)TEST_STRUCT_ARG(L8)TEST_STRUCT_ARG(L9)TEST_STRUCT_ARG(LA1)TEST_STRUCT_ARG(LA2)TEST_STRUCT_ARG(LA3)TEST_STRUCT_ARG(LA4)TEST_STRUCT_ARG(LA5)TEST_STRUCT_ARG(LA6)TEST_STRUCT_ARG(LA7)TEST_STRUCT_ARG(LA8)TEST_STRUCT_ARG(LA9)TEST_STRUCT_ARG(F1)TEST_STRUCT_ARG(F2)TEST_STRUCT_ARG(F3)TEST_STRUCT_ARG(F4)TEST_STRUCT_ARG(FA1)TEST_STRUCT_ARG(FA2)TEST_STRUCT_ARG(FA3)TEST_STRUCT_ARG(FA4)TEST_STRUCT_ARG(D1)TEST_STRUCT_ARG(D2)TEST_STRUCT_ARG(DA1)TEST_STRUCT_ARG(DA2)TEST_STRUCT_ARG(CF)TEST_STRUCT_ARG(FI)TEST_STRUCT_ARG(FI2)TEST_STRUCT_ARG(FI3)TEST_STRUCT_ARG(DI)TEST_STRUCT_ARG(DI2)TEST_STRUCT_ARG(DI3)TEST_STRUCT_ARG(FD)TEST_STRUCT_ARG(F2D)TEST_STRUCT_ARG(DF)TEST_STRUCT_ARG(DF2)TEST_STRUCT_RETURN(C1)TEST_STRUCT_RETURN(C2)TEST_STRUCT_RETURN(C3)TEST_STRUCT_RETURN(C4)TEST_STRUCT_RETURN(C5)TEST_STRUCT_RETURN(C6)TEST_STRUCT_RETURN(C7)TEST_STRUCT_RETURN(C8)TEST_STRUCT_RETURN(C9)TEST_STRUCT_RETURN(C10)TEST_STRUCT_RETURN(C11)TEST_STRUCT_RETURN(C12)TEST_STRUCT_RETURN(C13)TEST_STRUCT_RETURN(C14)TEST_STRUCT_RETURN(C15)TEST_STRUCT_RETURN(C16)TEST_STRUCT_RETURN(CA1)TEST_STRUCT_RETURN(CA2)TEST_STRUCT_RETURN(CA3)TEST_STRUCT_RETURN(CA4)TEST_STRUCT_RETURN(CA5)TEST_STRUCT_RETURN(CA6)TEST_STRUCT_RETURN(CA7)TEST_STRUCT_RETURN(CA8)TEST_STRUCT_RETURN(CA9)TEST_STRUCT_RETURN(CA10)TEST_STRUCT_RETURN(CA11)TEST_STRUCT_RETURN(CA12)TEST_STRUCT_RETURN(CA13)TEST_STRUCT_RETURN(CA14)TEST_STRUCT_RETURN(CA15)TEST_STRUCT_RETURN(CA16)TEST_STRUCT_RETURN(S1)TEST_STRUCT_RETURN(S2)TEST_STRUCT_RETURN(S3)TEST_STRUCT_RETURN(S4)TEST_STRUCT_RETURN(S5)TEST_STRUCT_RETURN(S6)TEST_STRUCT_RETURN(S7)TEST_STRUCT_RETURN(S8)TEST_STRUCT_RETURN(SA1)TEST_STRUCT_RETURN(SA2)TEST_STRUCT_RETURN(SA3)TEST_STRUCT_RETURN(SA4)TEST_STRUCT_RETURN(SA5)TEST_STRUCT_RETURN(SA6)TEST_STRUCT_RETURN(SA7)TEST_STRUCT_RETURN(SA8)TEST_STRUCT_RETURN(I1)TEST_STRUCT_RETURN(I2)TEST_STRUCT_RETURN(I3)TEST_STRUCT_RETURN(I4)TEST_STRUCT_RETURN(I5)TEST_STRUCT_RETURN(I6)TEST_STRUCT_RETURN(I7)TEST_STRUCT_RETURN(I8)TEST_STRUCT_RETURN(IA1)TEST_STRUCT_RETURN(IA2)TEST_STRUCT_RETURN(IA3)TEST_STRUCT_RETURN(IA4)TEST_STRUCT_RETURN(IA5)TEST_STRUCT_RETURN(IA6)TEST_STRUCT_RETURN(IA7)TEST_STRUCT_RETURN(IA8)TEST_STRUCT_RETURN(L1)TEST_STRUCT_RETURN(L2)TEST_STRUCT_RETURN(L3)TEST_STRUCT_RETURN(L4)TEST_STRUCT_RETURN(L5)TEST_STRUCT_RETURN(L6)TEST_STRUCT_RETURN(L7)TEST_STRUCT_RETURN(L8)TEST_STRUCT_RETURN(L9)TEST_STRUCT_RETURN(LA1)TEST_STRUCT_RETURN(LA2)TEST_STRUCT_RETURN(LA3)TEST_STRUCT_RETURN(LA4)TEST_STRUCT_RETURN(LA5)TEST_STRUCT_RETURN(LA6)TEST_STRUCT_RETURN(LA7)TEST_STRUCT_RETURN(LA8)TEST_STRUCT_RETURN(LA9)TEST_STRUCT_RETURN(F1)TEST_STRUCT_RETURN(F2)TEST_STRUCT_RETURN(F3)TEST_STRUCT_RETURN(F4)TEST_STRUCT_RETURN(FA1)TEST_STRUCT_RETURN(FA2)TEST_STRUCT_RETURN(FA3)TEST_STRUCT_RETURN(FA4)TEST_STRUCT_RETURN(D1)TEST_STRUCT_RETURN(D2)TEST_STRUCT_RETURN(DA1)TEST_STRUCT_RETURN(DA2)TEST_STRUCT_RETURN(CF)TEST_STRUCT_RETURN(FI)TEST_STRUCT_RETURN(FI2)TEST_STRUCT_RETURN(FI3)TEST_STRUCT_RETURN(DI)TEST_STRUCT_RETURN(DI2)TEST_STRUCT_RETURN(DI3)TEST_STRUCT_RETURN(FD)TEST_STRUCT_RETURN(F2D)TEST_STRUCT_RETURN(DF)TEST_STRUCT_RETURN(DF2)

⌨️ 快捷键说明

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