2010-04-25 2 views
0

나는 패딩 구조체를 설계하고있다 : 나는 CONST CGPadding CGPaddingZero을 만드는 방법을아이폰/목표 - C 구조체 문제는 내 자신의 CGRectZero를

/* 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 = (CGPadding){0.0, 0.0, 0.0, 0.0}; 

그것은 작동하지 않습니다. 그래서 내가 뭘 잘못하고 있니?

+2

왜 'UIEdgeInsets'을 사용하지 않습니까? – kennytm

+0

"작동하지 않는다"는 것은 무엇을 의미합니까? 컴파일러 오류? 런타임 에러? 잘못된 값 어딘가? – JeremyP

답변

0

나는이 모든 것을 iPhone에서 항상하기 때문에 매우 흥미 롭다. 나중에 같은 이름을 가진 typedef와 관련이있을 수 있습니까? typedef를 없애고 struct를 이와 같이 정의한다면 어떨까요?

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

그럼 작동합니까? 모두 0뿐만 아니라 부동 제로이며 모든 일을 제로 보내고있어 때문에, 당신은 그냥 내가 것이 물건을 아이폰에 모든 시간을

const CGPadding CGPaddingZero = {0}; 

말할 수 그것이 당신을 위해 작동하지 않으면 꽤 놀랐습니다.

+0

blabla.o 파일에서 중복 된 심볼 _CGPaddingZero가 발생합니다 (...) 종료 코드 1로 실패했습니다. – Mark