threedotthree-abi-1.mm

来自「Mac OS X 10.4.9 for x86 Source Code gcc」· MM 代码 · 共 70 行

MM
70
字号
/* APPLE LOCAL begin radar 4301047 */#include <stdio.h>#include <string.h>#include <objc/Protocol.h>#ifndef __NEXT_RUNTIME__#include <objc/objc-api.h>#endifextern "C" void abort();@protocol CommonProtocol-(oneway void)methodCall_On:(in bycopy id)someValue_On;-(oneway void)methodCall_nO:(bycopy in id)someValue_nO;-(oneway void)methodCall_Oo:(out bycopy id)someValue_Oo;-(oneway void)methodCall_oO:(bycopy out id)someValue_oO;-(oneway void)methodCall_rn:(in const id)someValue_rn;-(oneway void)methodCall_oOn:(in bycopy out id)someValue_oOn;@end@interface ObjCClass <CommonProtocol>{}@end@implementation ObjCClass-(oneway void)methodCall_On:(in bycopy id)someValue_On { }-(oneway void)methodCall_nO:(bycopy in id)someValue_nO { }-(oneway void)methodCall_Oo:(out bycopy id)someValue_Oo { }-(oneway void)methodCall_oO:(bycopy out id)someValue_oO { }-(oneway void)methodCall_rn:(in const id)someValue_rn { }-(oneway void)methodCall_oOn:(in bycopy out id)someValue_oOn { }@endProtocol *proto = @protocol(CommonProtocol);struct objc_method_description *meth;int main(){        meth = [proto descriptionForInstanceMethod: @selector(methodCall_On:)];	if (strcmp (meth->types, "Vv12@0:4On@8"))	  abort();        meth = [proto descriptionForInstanceMethod: @selector(methodCall_nO:)];	if (strcmp (meth->types, "Vv12@0:4nO@8"))	  abort();        meth = [proto descriptionForInstanceMethod: @selector(methodCall_Oo:)];	if (strcmp (meth->types, "Vv12@0:4Oo@8"))	  abort();        meth = [proto descriptionForInstanceMethod: @selector(methodCall_oO:)];	if (strcmp (meth->types, "Vv12@0:4oO@8"))	  abort();        meth = [proto descriptionForInstanceMethod: @selector(methodCall_rn:)];	if (strcmp (meth->types, "Vv12@0:4rn@8"))	  abort();        meth = [proto descriptionForInstanceMethod: @selector(methodCall_oOn:)];	if (strcmp (meth->types, "Vv12@0:4oOn@8"))	  abort();	return 0;}/* APPLE LOCAL end radar 4301047 */

⌨️ 快捷键说明

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