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 + -
显示快捷键?