local-decl-2.m

来自「用于进行gcc测试」· M 代码 · 共 43 行

M
43
字号
/* Test for ivar access inside of class methods.  It should be allowed (with a warning), but only   if no other declarations with the same name are seen.  *//* Author: Ziemowit Laski <zlaski@apple.com>.  *//* { dg-do compile } */#include <objc/Object.h>@interface Sprite: Object {  int sprite, spree;}+ (void)setFoo:(int)foo;+ (void)setSprite:(int)sprite;- (void)setFoo:(int)foo;- (void)setSprite:(int)sprite;@endint spree = 23;@implementation Sprite+ (void)setFoo:(int)foo {  sprite = foo;  /* { dg-warning "instance variable .sprite. accessed in class method" } */  spree = foo;}+ (void)setSprite:(int)sprite {  int spree;  sprite = 15;  spree = 17;  ((Sprite *)self)->sprite = 16;   /* NB: This is how one _should_ access */  ((Sprite *)self)->spree = 18;    /* ivars from within class methods!    */}- (void)setFoo:(int)foo {  sprite = foo;  spree = foo;}- (void)setSprite:(int)sprite {  int spree;  sprite = 15;  /* { dg-warning "local declaration of .sprite. hides instance variable" } */  self->sprite = 16;  spree = 17;  /* { dg-warning "local declaration of .spree. hides instance variable" } */  self->spree = 18;}   @end

⌨️ 快捷键说明

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