【发布时间】:2015-10-15 13:52:19
【问题描述】:
我正在使用带有标准 C 的 Visual Studios 2013。
我的程序需要四行
{"Analysis 1", "AN 1", 0, 0.0667} 在Fach[0]。
我不想浪费这么多行来填充这个数组。
有没有更好的方法将这四行合二为一?
#define _CRT_SECURE_NO_WARNINGS
#include "header.h"
#include <stdio.h>
#include <string.h>
struct sFach
{
char Mod[40]; //Modulbezeichnung
char Ab[5]; //Abkürtzung
int Note; //Note
double Gew; //Gewichtungsfaktor
};
int main()
{
struct sFach Fach[31];
strcpy(Fach[0].Mod, "Analysis 1");
strcpy(Fach[0].Ab, "AN 1");
Fach[0].Note = 0;
Fach[0].Gew = 0.0667;
strcpy(Fach[1].Mod, "Algebra");
strcpy(Fach[1].Ab, "AL");
Fach[1].Note = 0;
Fach[1].Gew = 0.0889;
return 0;
}
【问题讨论】:
-
使代码可读且易于维护;不浪费代码行。
-
代码行数如何相关?如果你想用 4 个成员填充一个结构,你必须写 4 行来完成它。即使你能想出办法不这样做,那又有什么用呢?
-
使用复合文字或带有指定初始化器的初始化器。
-
这样的数据不应该来自文件而不是在程序中硬编码吗?
-
然后创建一个将 4 个值传入的函数,并让该函数执行 strcpy 和赋值。但它并没有让它“更快”。