以下のような圧縮された構文で何百もの文字列を宣言して初期化できるCのデータ構造を探していますが、これはC11で可能ですか?
#include <stdio.h>
enum {ENGLISH, SPANISH, FRENCH, NUM_LANGUAGES};
struct language_string =
{
const char* language_hello[NUM_LANGUAGES] = {"Hello", "Hola", "Bonjour"};
const char* language_goodbye[NUM_LANGUAGES] = {"Goodbye", "Adiós", "Au revoir"};
};
void foo(void)
{
printf(language_string.language_hello[ENGLISH]); // print "Hello"
}
編集:ヘッダーファイルでは、すべての文字列を構造体でラップしたり、外部に移動したりせずに公開でき、文字列ごとに1行という主な目的を達成できることに気付きました。
const char* language_hello[NUM_LANGUAGES] = {"Hello", "Hola", "Bonjour"};
const char* language_goodbye[NUM_LANGUAGES] = {"Goodbye", "Adiós", "Au revoir"};