C에서 테이블의 크기가 가장 큰 문자열 리터럴을 찾고 있습니다. 요점은 컴파일러에서 sizeof ("Some String Literal") 컴파일 시간 동안.테이블에 크기가있는 문자열 리터럴 구현
지금까지 나는 다음과 같은 두 가지 가능성을 생각할 수 있습니다 (아래 코드 참조)
입력 문자열을 두 번 옵션 A.에 대해 수행으로이 있기 때문에 가능한 입력 오류의 좋은 해결책이되지 않는 경우가 많은 문자열이며 문자열을 변경해야합니다.
는 문자열 리터럴을 정의하고 옵션 B
으로 수행 또는 더 우아한 해결책이 있기 때문에 다음 표에 다음을 사용할 수 있습니까?
#define STR_OPTION_B "Option B"
typedef struct
{
enum {
OPTION_A,
OPTION_B
} optionIDs;
char* pString;
int sizeOfString;
}
tTableElement;
tTableElement table[] =
{
{ OPTION_A, "Option A", sizeof("Option A") },
{ OPTION_B, STR_OPTION_B, sizeof(STR_OPTION_B) }
};
당신이 우아 무엇을 생각 하는가? – Mike
친절하고 구현하기 쉽고 읽기 쉽습니다. – Anguel