真正上古代码,一群真正智障在改.
比如:
xx.h
#define XX_SIZE 10
xx.c
int xx_size = XX_SIZE; //为了好调试
typedef struct {
int xx;
char name[20];
char price[10];
/* 此处省略一百多行 */
char attr200[30];
int yy;
} xstruct;
int main(int argc, char *argv[]) {
char username[20]; /* 这么做也就是变量名比argv[x]更直观 */
char passwd[20];
memset(username, NULL, sizeof(username));
/* 大量的NULL的warning, 有计划地改为0x00,也不在定义时初始化 */
memset(passwd, 0, sizeof(passwd)); /* 上面这些和主题无关 */
strcpy(username, argv[1]);
strcpy(passwd, argv[2]);
xstruct orders[800];
some_list data1 = read_from_file();
for(i: 0 ~ 800-1) {
strncpy(orders[i].name, data1[i][0].str, size);
debug("name = ...");
strncpy(orders[i].price, data1[i][1].str, size);
debug("price = ...");
// 此处省略n百行
strncpy(...);
}
xx_free(data1);
}
现在填充的时候每条要加个操作,那么岂不是要加个几百行,
要是在脚本语言里,习惯把那些字段做成一个数组,循环这个数组来操作字典
但是在稀语言里想到的也只是用个宏代替一些重复的东西, 还不知道允许不.
上网也搜里一下应该是没法运行时遍历字段, gcc也没有什么相关黑科技扩展
只是吐一吐吧,而且类似的这种结构不计其数,数据库crud,前台展示,转换...
--
修改:dajun FROM 140.207.23.*
FROM 140.207.23.*