我正在尋找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"
}
編輯: 我已經認識到,在一個頭文件中我可以公開的所有字符串不用包裹它們的結構或外擴它們,並實現了主力的意圖,每串一行:
const char* language_hello[NUM_LANGUAGES] = {"Hello", "Hola", "Bonjour"};
const char* language_goodbye[NUM_LANGUAGES] = {"Goodbye", "Adiós", "Au revoir"};
你甚至嘗試這些數組的初始化?他們應該工作 - 儘管'struct language_string = {...}'是錯誤的。 – oldrinb
正如你似乎計劃一個多語言的應用程序,你可能想看看這裏:http://www.gnu.org/software/gettext/ – alk