method-23.mm

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

MM
45
字号
/* APPLE LOCAL file 4209854 *//* Check if array and function parameters get decayed to pointers as   they should.  *//* { dg-do run } *//* { dg-options "-O2" } */#include <objc/Object.h>#include <string.h>#include <stdlib.h>static char global_buf[20];char *strcpy_like_callee(const char *s) {  strcpy(global_buf, s);  return global_buf;}  typedef char io_string_t[512];typedef char *(func_type)(const char *);@interface DeviceObject: Object- (void) func:(func_type)func stucPathInIORegistry:(io_string_t)ioRegPath;@end@implementation DeviceObject- (void) func:(func_type)func stucPathInIORegistry:(io_string_t)ioRegPath{    func(ioRegPath);}@endint main (void) {  io_string_t my_string;  DeviceObject *obj = [DeviceObject new];  strcpy (my_string, "Hello!");  strcpy (global_buf, "Good-bye!");  [obj func:strcpy_like_callee stucPathInIORegistry:my_string];  if (strcmp (global_buf, "Hello!"))    abort ();  return 0;}

⌨️ 快捷键说明

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