2012-02-17 2 views
1

# 정의 된 매개 변수를 사용하여 키를 채우고 해시 값을 정의 된 매개 변수에 해당하는 값으로 채워서 해시 맵/테이블을 만들고 싶습니다 ... 더 많은 매개 변수를 쉽게 추가 할 수 있습니다. 미래에.#define 매크로에서 해시 테이블 채우기

 //key //value 
#define paramA 1 
#define paramB 2 

이렇게하는 방법이 있습니까?

+0

매크로가 없으면 컴파일러가 소스를 볼 때까지 'paramA'와'paramB'의 모든 언급이 사라질 것이기 때문입니다. 매크로 *를 사용하여이 문제를 해결할 수 있지만 위선적 인 현상입니다. – Jon

답변

2

테이블을 만드는 방법에 관계없이이 멤버를 테이블에 추가하여 명시 적으로 채워야합니다. 따라서 멤버가 #define으로 정의되었거나, const로 설정되거나, 테이블에 추가되는 작업은 문제가되지 않습니다.

아마도 당신이 할 수있는 최선의 목표는 #define을 실제로 값 배열을 정의하도록 설정하고 두 번째 #define을 설정하여 해당 배열의 크기를 정의하는 것입니다. 그런 다음 루프를 크기에 따라 배열을 순환하여 해시 테이블에 채울 수 있습니다.

이 디자인 냄새가 나는 것 같아요, 당신이하고있는 일을 다시 생각하고 더 좋은 방법을 찾고 싶을지도 모릅니다 - 데이터베이스 나 파일을 읽는 것 같은가요?

+0

고마워, 내가 구조체의 배열을 구현하려고 생각합니다. – Telenoobies