首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言为什么不能在定义结构时设定默认值呢?该如何处理

2012-04-16 
C语言为什么不能在定义结构时设定默认值呢?如果能在定义结构时设定默认值该有多好?比如:struct XS{int a

C语言为什么不能在定义结构时设定默认值呢?
如果能在定义结构时设定默认值该有多好?比如:

struct XS
{
int a = 2;
int b = 16;
char c[4] = {'c', 'h', 'a', 'r'};
}

struct XS xs[100];

结果这100个结构均按默认值设好。

为什么不添加这个功能呢?我太需要了,多少次为没有这个功能而绞尽脑汁。



[解决办法]
C语言没有这种功能,应该是处于性能上的考虑。就好比,malloc后的内存空间值不一定是0。

C/C++ code
#include <stdio.h>struct xs{        int a;        int b;        char c[4];};int main(void){        int i = 100;        struct xs temp = {2, 16, {'c', 'h', 'a', 'r'}};        struct xs XS[100];        for(i = 0; i < 100; ++i) {                memcpy(&XS[i], &temp, sizeof(struct xs));        }        printf("%d %d %c%c%c%c\n", XS[50].a, XS[50].b,                XS[50].c[0], XS[50].c[1], XS[50].c[2], XS[50].c[3]);        return 0;} 

热点排行
Bad Request.