[英]C90: How do I globally initialize this struct in C without C99 extensions
我想知道用 C90 初始化這個結構的最佳方法是什么,同時仍然保持整潔。
在我的 header 文件中,將其命名為 test.h,我定義了以下結構:
struct s_test_cfg{
char *a[3];
char *b[3];
char *c[3];
}
然后我將它聲明為外部結構,以便我可以在 .c 文件中全局初始化它:
extern struct s_test_cfg test_cfg;
現在在 my.c 文件中,我希望能夠在全局范圍內聲明這樣的內容(顯然我要寫的內容在 C90 中不受支持):
struct s_test_cfg test_cfg =
{ .a = {"a", "b", "c"},\
.b = {"d", "e", "f"},\
.c = {"g", "h", "i"} };
這顯然使您嘗試做的事情變得非常整潔和透明。 如何在我的 C 文件中初始化與此語法一樣干凈的全局結構? 謝謝。
struct s_test_cfg test_cfg = {
{ "a", "b", "c" }, /* .a */
{ "d", "e", "f" }, /* .b */
{ "g", "h", "i" }, /* .c */
};
可能是最干凈的選擇(沒有讓自己使用 C99 編譯器;GCC 和英特爾 C 都支持 C99)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.