다음 프로그램의 6 행 (my_foo를 foo_init로 초기화)에 오류가 발생하며 이유를 잘 모르겠습니다.
typedef struct foo_t {
int a, b, c;
} foo_t;
const foo_t foo_init = { 1, 2, 3 };
foo_t my_foo = foo_init;
int main()
{
return 0;
}
이것은 내가 작업중 인 더 큰 멀티 파일 프로젝트의 단순화 된 버전입니다. 목표는 여러 파일이 상태 구조를 초기화하는 데 사용할 수 있도록 오브젝트 파일에 단일 상수를 갖는 것입니다. 리소스가 제한된 임베디드 대상이므로 구조체가 그렇게 작지 않기 때문에 소스의 여러 복사본을 원하지 않습니다. 사용하지 않는 것이 좋습니다.
#define foo_init { 1, 2, 3 }
휴대용 코드를 작성하려고하는데 유효한 C89 또는 C99 솔루션이 필요합니다.
이것은 객체 파일의 ORG와 관련이 있습니까? 초기화 된 변수는 하나의 ORG로 들어가고 두 번째 ORG의 내용을 복사하여 초기화됩니까?
어쩌면 나는 전술을 바꿔야 할 것입니다. 초기화 기능은 시작시 모든 사본을 수행합니다. 다른 아이디어가 없다면?