iPhone / Objective-C struct вопрос мой собственный CGRectZero - PullRequest
0 голосов
/ 25 апреля 2010

Я проектирую структуру Padding следующим образом:

/* Padding. */
struct CGPadding {
 CGFloat left;
 CGFloat top;
 CGFloat right;
 CGFloat bottom;
};
typedef struct CGPadding CGPadding;

CG_INLINE CGPadding CGPaddingMake(CGFloat left, CGFloat top, CGFloat right, CGFloat bottom) { CGPadding p; p.left = left; p.top = top; p.right = right; p.bottom = bottom; return p; }

Это все работает отлично, проблема в том, как мне создать const CGPadding CGPaddingZero? Если мне так:

const CGPadding CGPaddingZero = (CGPadding){0.0, 0.0, 0.0, 0.0};

Это не работает. Так что я делаю не так?

1 Ответ

0 голосов
/ 25 апреля 2010

Я нахожу это очень интересным, потому что я делаю это все время на iPhone, и он отлично работает. Может ли это быть как-то связано с typedef после того же имени? Что если вы избавитесь от typedef и определите свою структуру следующим образом?

typedef struct CGPadding {
 CGFloat left;
 CGFloat top;
 CGFloat right;
 CGFloat bottom;
} CGPadding;

Это работает тогда? Кроме того, поскольку все 0 равны нулю и для числа с плавающей точкой, и вы обнуляете все это, вы можете просто сказать

const CGPadding CGPaddingZero = {0};

Я все это время делаю на iPhone, поэтому я был бы очень удивлен, если он не работает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...