foxriver
Keep It Simple and Stupid.
posts - 12,  comments - 39,  trackbacks - 0

#ifndef __file_h__
extern const char table1[];
#else
const char table1[] = "\x30\xB8\xD1\xB8\x10\x68\x3D\xBC\x09\x04\x31\x94\x5C\x91\xAF\x6C";
#endif

#ifndef __file_h__
#define __file_h__

.........function


#endif


--------------------
用以上技巧的前提是,这个.H必须被不同的CPP包含两次以上。

posted on 2010-04-08 11:17 foxriver 阅读(5747) 评论(7)  编辑 收藏 引用

FeedBack:
# re: 在c++头文件里定义数组的方法。
2010-04-08 12:00 | Jakcie
没有必要吧,直接这样不就行了么。相当于定义一个常量呗。

#ifndef __file_h__
#define __file_h__

const char table1[] = "\x30\xB8\xD1\xB8\x10\x68\x3D\xBC\x09\x04\x31\x94\x5C\x91\xAF\x6C";

.........function

#endif
  回复  更多评论
  
# re: 在c++头文件里定义数组的方法。
2010-04-08 12:15 | foxriver
@Jakcie

这样的话,最终生成exe里,数组的实体会被克隆N份,你可以用ultraedit来查看。比如table1是100k, 有10个cpp引用了,exe的最终大小 = 程序 + 数组1000k.  回复  更多评论
  
# re: 在c++头文件里定义数组的方法。
2010-04-08 12:38 | vk
@foxriver
不会的,因为编译通不过的  回复  更多评论
  
# re: 在c++头文件里定义数组的方法。
2010-04-08 17:38 | 溪流
__declspec(selectany)  回复  更多评论
  
# re: 在c++头文件里定义数组的方法。[未登录]
2010-07-09 17:51 | Snake
楼主的技巧可以解决问题,但是有点歪门邪道

没有更好的解决办法么?@Jakcie

另外直接包含不行,链接错误,重定义
  回复  更多评论
  
# re: 在c++头文件里定义数组的方法。
2010-07-09 19:10 | 溪流
“正道”应该是修改你的设计。  回复  更多评论
  
# re: 在c++头文件里定义数组的方法。
2013-09-06 18:47 | 金永来
BCB 下编译通过不了
DEV CPP 下能编译通过  回复  更多评论
  

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2010年4月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

常用链接

留言簿(3)

随笔档案

文章档案

相册

1

搜索

  •  

最新评论

阅读排行榜

评论排行榜