저는 마이크로 컨트롤러에서 프로젝트를 작업 중이고 일부 설정을 유지해야합니다. 이것이 아이팟 인 척하십시오. CurrentSongPlaying
, CurrentVolume
등과 같은 다양한 설정을 저장해야하므로 다시 켤 때 해당 설정을 복원 할 수 있습니다. 내가 겪고있는 문제는 모든 비 휘발성 설정을 메모리에서 직렬화/직렬화 할 수있는 단일 구조체에 저장하는 것이 의미가 있지만 클래스를 수행하지 않고도이를 수행 할 수있는 방법을 찾을 수는 없다는 것입니다. 사이즈/타입 정보를 위해 저장 될 필요가있는 설정을 포함하는 모든 클래스를 포함하는 비 휘발성 메모리로부터의 직렬화/비 직렬화. 내가 저장하고있는 것에 대해 알 필요없이 메모리에 이러한 모든 설정을 유지할 수있는 디자인 패턴이 있습니까? C를 사용하는 것이 필수 인 경우Loose Coupling을 유지하면서 개체를 유지하십시오.
1
A
답변
1
마치 associative array처럼 보이게됩니다. 연관 배열 (또는 맵)은 다른 값을 고유 키에 매핑 할 수있게 해주는 컨테이너입니다. 구현에 따라 고정 또는 동적 크기를 가질 수 있습니다. 적절한 직렬화 메커니즘과 함께 미리 내용을 알지 않아도 상태를 저장하고 복원 할 수 있습니다.
그러나 C는이 데이터 구조를 기본 제공하지 않습니다. Look at this question for a few implementations. 가장 일반적인 구현은 해시 맵이라고도하는 hash table입니다.
0
OOP와 클래스 내가 구조체는 파일에 쓸 것, C.
에서 구현하기가 쉽지 않다.
그런 다음 재부팅시 초기화 중에이를 읽고 구문 분석합니다.
여러분은 이것을 struct 자신을 serialize하는 것으로 생각할 수 있습니다.
+0
그게 내가 내 질문에 제안한 접근 방식의 문제는 모든 다른 "클래스"(헤더 파일) 구조체를 알 수 있도록 직렬화하려는 "개체"(형식)에 대한 모든 포함해야한다는 것입니다. 쓰기/읽기 작업을 수행하는 "클래스"가 메모리에 저장하려는 "개체"가 포함 된 모든 파일을 포함하지 않도록하려면 어떻게해야합니까? –
달성하고자하는 의사 코드의 예를 보여줄 수 있습니까? – netcoder
C++로 이동할 수 있습니까? 상속/다형성은 이러한 모든 종류의 것들을 훨씬 쉽게 만듭니다! –
연관 배열이 필요한 것처럼 보입니다. – netcoder