免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: uusky_cu
打印 上一主题 下一主题

关于数组初始化的问题,问题相当有挑战!绝对不忽悠,请进! [复制链接]

论坛徽章:
0
51 [报告]
发表于 2011-08-26 17:18 |只看该作者
本帖最后由 AD8018 于 2011-08-29 11:18 编辑

好吧,放段很没深度的代码吧。

代码输出结果
n1[] = 0 3 6 9 12
n2[] = 15 14 13 12 11 10 9 8 7 6
a1[] = 1 2 3 4 5
a2[] = 1 2 3 4 5 6 7 8 9

a1, a2是楼主1楼要定义的a

头文件mfor.h在60楼

  1. #include <stdio.h>
  2. #include "mfor.h"


  3. #define X1(n,MFOR)        MFOR n*3,
  4. const int n1[5] =
  5. {
  6. FORA4(X1)
  7. };

  8. #define X2(n,MFOR)        (n+6), MFOR
  9. const int n2[10] =
  10. {
  11. FORA9(X2)
  12. };


  13. #define JOIN(a,b)        a##b
  14. #define X_An(n,MFOR)        (n == 0 ? 1 : MFOR + 1)
  15. #define A(n)                JOIN(FORA,n)(X_An)
  16. #define X_a(n,MFOR)         MFOR A(n),


  17. const int a1[] =
  18. {
  19.         FORB4(X_a)
  20. };

  21. const int a2[] =
  22. {
  23.         FORB8(X_a)
  24. };

  25. int main()
  26. {
  27.         int i;

  28.         printf("n1[] = ");
  29.         for(i = 0; i < sizeof(n1) / sizeof(n1[0]); ++i)
  30.                 printf("%d ", n1[i]);
  31.         printf("\n");

  32.         printf("n2[] = ");
  33.         for(i = 0; i < sizeof(n2) / sizeof(n2[0]); ++i)
  34.                 printf("%d ", n2[i]);
  35.         printf("\n");

  36.         printf("a1[] = ");
  37.         for(i = 0; i < sizeof(a1) / sizeof(a1[0]); ++i)
  38.                 printf("%d ", a1[i]);
  39.         printf("\n");

  40.         printf("a2[] = ");
  41.         for(i = 0; i < sizeof(a2) / sizeof(a2[0]); ++i)
  42.                 printf("%d ", a2[i]);
  43.         printf("\n");

  44.         return 0;
  45. }
复制代码

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
52 [报告]
发表于 2011-08-26 17:25 |只看该作者
好吧,放段很没深度的代码吧。

代码输出结果
n1[] = 0 3 6 9 12
n2[] = 15 14 13 12 11 10 9 8 7 6
a ...
AD8018 发表于 2011-08-26 17:18


请教 mfor.h 内容

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
53 [报告]
发表于 2011-08-26 17:50 |只看该作者
我在想,这帖子都这么多楼了,怎么就没人想到先用某个脚本或者C什么的去生成一个有合适数据的.c文件用于编译呢……

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
54 [报告]
发表于 2011-08-26 17:55 |只看该作者
旁观者清啊。。。 ,
现在所有人都在较劲纯理论问题, mfor.h如果用纯c搞定, 倒也能学一招

我在想,这帖子都这么多楼了,怎么就没人想到先用某个脚本或者C什么的去生成一个有合适数据的.c文件用于编译 ...
starwing83 发表于 2011-08-26 17:50

论坛徽章:
0
55 [报告]
发表于 2011-08-26 18:42 |只看该作者
请教 mfor.h 内容
zylthinking 发表于 2011-08-26 17:25



    mfor.h 是很苦力的做法。我怕你觉得太缺深度,没敢放。

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
56 [报告]
发表于 2011-08-26 18:45 |只看该作者
mfor.h 是很苦力的做法。我怕你觉得太缺深度,没敢放。
AD8018 发表于 2011-08-26 18:42


你没必要冷风热潮的, 如果你想出了别人想不到的方法, 自然会赢得尊重

论坛徽章:
0
57 [报告]
发表于 2011-08-26 18:47 |只看该作者
你没必要冷风热潮的, 如果你想出了别人想不到的方法, 自然会赢得尊重
zylthinking 发表于 2011-08-26 18:45



    恐怕会让你失望,方法不是首创。

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
58 [报告]
发表于 2011-08-26 18:50 |只看该作者
好吧, 只要是可行的方法。
如果是模版 或者 只是针对 n1, n2, a1, a2 定义几个宏, 而不同直接应用的 n3........nn, a3............an 的, 那就不是期望的

论坛徽章:
0
59 [报告]
发表于 2011-08-26 19:11 |只看该作者
本帖最后由 ibmmaximo 于 2011-08-28 16:38 编辑

ok

论坛徽章:
0
60 [报告]
发表于 2011-08-26 19:26 |只看该作者
本帖最后由 AD8018 于 2011-08-26 19:28 编辑

上苦力代码。gcc (GCC) 3.4.4编译通过。

这个是宏实现循环的“基础构件”,
觉得不过瘾,可以再加长点。

mfor.7z (3.16 KB, 下载次数: 84)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP