0
주 프로그램에서 값을 할당하려고합니다. 내가 메인 프로그램의 구조 페이지에 값을 할당 할 수C18 컴파일러, MPLAB (ANSI C89)에서 구조를 할당하는 방법
typedef struct PointStructure
{ unsigned char x;
unsigned char y;
unsigned char offset;
unsigned char page;
}point;
volatile far point p;
volatile far point AryP[5];
유일한 방법은
p.x=10;
p.y=20;
p.offset=0;
p.page=1;
나 배열에 값을 할당하는 것은 공간과 시간이 많이 걸릴 것이 방법입니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
나를 위해 작동하지 않았다 방법에 따라..
p = {10, 20, 0, 1};
p = {.x = 10, .y=20, .offset=0, .page=1};
'= {10, 20, 0, 1}'초기화 단계에서 작동합니다. 할당의 경우 정의되어 있지 않습니다. '.fieldname = value'는 GNU C로만 인식되며 인식되지 않습니다. – keltar
답변 해 주셔서 감사합니다. 예, 초기화 단계에서 작동합니다. 그러나 특정 플래그를 기반으로 런타임에 값을 할당해야합니다. 주 프로그램에서 할당하기 쉬운 방법을 찾고 싶었습니다. p.x = 10보다 값을 할당하는 다른 방법이 있습니까? 등등? – Dolphin
'포인트 t = {10, 20, 0, 1}; memcpy (& p, & t, sizeof (t));'. C99이 복합 리터럴을 추가하지만 컴파일러에서 사용할 수 없다고 생각합니다. – keltar