免费注册 查看新帖 |

Chinaunix

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

请教#define 的高级用法! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-02-22 09:56 |只看该作者
原帖由 snow888 于 2008-2-22 09:43 发表 [

觉得有点难度,能不能详细说说方法?


int main()
{
int i;
char *str[5] = {"say","hello","to","china","unix"};
for(i=0; i<5; i++)
  printf("str%d = %s\n", i, str);
return 0;
}

这样应该可以吧?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
12 [报告]
发表于 2008-02-22 09:59 |只看该作者
原帖由 ck_lai 于 2008-2-22 09:56 发表


int main()
{
int i;
char *str[5] = {"say","hello","to","china","unix"};
for(i=0; i



要这样写就达不到楼主的要求了。

简单表述以下:

给 N 个变量赋值  str1,str2 ... ... strn

但这个 str1 , str2 , ... ... strn 的变量名并不存在,是动态生成的。

论坛徽章:
0
13 [报告]
发表于 2008-02-22 10:01 |只看该作者
原帖由 snow888 于 2008-2-22 09:59 发表



要这样写就达不到楼主的要求了。

简单表述以下:

给 N 个变量赋值  str1,str2 ... ... strn

但这个 str1 , str2 , ... ... strn 的变量名并不存在,是动态生成的。

这是不可能的,需要编译的语言都做不到这点。用数组是变通的方法,不要那么死嘛。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
14 [报告]
发表于 2008-02-22 10:05 |只看该作者
原帖由 cugb_cat 于 2008-2-22 10:01 发表

这是不可能的,需要编译的语言都做不到这点。用数组是变通的方法,不要那么死嘛。



需要指出的是,这样的需求在程序开发中非常广泛。

我之所以觉得有难度,也是基于如此的原因。

很希望能找到一个解决这个问题的方法和思路。

^_^.

论坛徽章:
0
15 [报告]
发表于 2008-02-22 10:09 |只看该作者
原帖由 snow888 于 2008-2-22 10:05 发表



需要指出的是,这样的需求在程序开发中非常广泛。

我之所以觉得有难度,也是基于如此的原因。

很希望能找到一个解决这个问题的方法和思路。

^_^.

不是有难度,是根本做不到,变量在编译时期要分配内存,运行时根本不可能在动态生成变量,不知道为什么会有这种需求?为什么不用数组呢?或者变长数组也可以啊。

论坛徽章:
0
16 [报告]
发表于 2008-02-22 10:09 |只看该作者
以前也碰到过和楼主类似的需求。。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
17 [报告]
发表于 2008-02-22 10:37 |只看该作者
用 Perl 吧。
不然就只能用数组。
不过我也没觉得用数组有什么实现不了的。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
18 [报告]
发表于 2008-02-22 10:48 |只看该作者
原帖由 cugb_cat 于 2008-2-22 10:09 发表

不是有难度,是根本做不到,变量在编译时期要分配内存,运行时根本不可能在动态生成变量,不知道为什么会有这种需求?为什么不用数组呢?或者变长数组也可以啊。


所以,我问使用数组如何实现。

其实,需要的是目的,不是实现的过程。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
19 [报告]
发表于 2008-02-22 10:49 |只看该作者
原帖由 flw 于 2008-2-22 10:37 发表
用 Perl 吧。
不然就只能用数组。
不过我也没觉得用数组有什么实现不了的。


所以想请老大详细谈谈实现的方法。

我比较笨,最好能给出完整的例子。

^_^.

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
20 [报告]
发表于 2008-02-22 10:50 |只看该作者
看 11 楼
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP