+ -
当前位置:首页 → 问答吧 → 原来GCC的方言这么多,还可以这样初始化!!!

原来GCC的方言这么多,还可以这样初始化!!!

时间:2010-08-26

来源:互联网

啥也不说。真接上代码
  1. #include <stdio.h>
  2. #define MAKE_POINT(x,y) {x, y}
  3. #define COLOR_B 0
  4. #define COLOR_W 1
  5. #define COLOR_R  2
  6. struct point_t
  7. {
  8.     unsigned X,Y;
  9. };
  10. int main()
  11. {
  12.     static const struct point_t point[] = {
  13.         [COLOR_B] = MAKE_POINT(12,12),
  14.         [COLOR_R] = MAKE_POINT(1000,300),
  15.         [COLOR_W] = MAKE_POINT(300,300),
  16.     };
  17.     printf("%d\n",point[COLOR_R].X);
  18.     return 0;
  19. }
复制代码

作者: zhangsuozhu   发布时间: 2010-08-26

这是C99吧?

作者: liwangli1983   发布时间: 2010-08-26

看内核里看到这样的用法。

作者: zhangsuozhu   发布时间: 2010-08-26

翻了下书,确实是C99的新特性“指定初始化”,再配合上宏,这样初始化意义比较明确

作者: liwangli1983   发布时间: 2010-08-26

这货要在下标大的时候才比较给力吧

作者: daybreakcx   发布时间: 2010-08-26

我还以为是GCC的方言呢!原来是C99啊。 受教了!

作者: zhangsuozhu   发布时间: 2010-08-26