XXX被多次定义的问题
来源:互联网 发布:胖子升级数据 编辑:程序博客网 时间:2024/06/07 13:41
在头文件中定义了如下字符数组
char type_chunk[20] = "chunk";
char type_read[20] = "read";
char type_hash[20] = "hash";
char type_dedup[20] = "dedup";
char type_restore[20] = "restore";
char type_rewrite[20] = "rewrite";
char type_trace[20] = "trace";
char type_container[20] = "container";
char type_restore_chunk[20] = "res_chunk";
char type_restore_recipe[20] = "res_recipe";
且工程中的每个.c文件都包含了此.h文件
结果出现了各种被多次定义的错误提示
如下:
原因是头文件被多次编译
有以下几种方法可以改:
1、在头文件中声明,在主函数的c文件中定义
int g_number; // 定义式,不管你放在哪里,它也是定义式。定义式需要分配内存,所以一个变量的定义式应该只有一个,而且只能有一个。你的头文件被多处包含,相当于定义了多个定义式,所以报错是必然的。
extern int g_number; // 声明式,不分配内存,可以有N多个。放在头文件中,被包含多次,无所谓
2、在每个用到的c文件定义一遍(这样就不是全局变量了)
因为我需要用到的只是这个字符串的值,不需要改变其内容。但是这种方法太原始,不建议采用。。
3、直接用difine
既然只需要用值,直接define简单的多呀,又不会出错
over
- XXX被多次定义的问题
- 函数放在头文件中被多次包含的重定义问题
- inline多次定义的用法
- 关于LNK2005:DllMain已经在xxx中被定义的问题
- 关于C++重定义多次初始化问题
- 头文件中全局函数多次引用出现重定义的问题记录
- C++经验总结(2):函数被多次定义
- 关于Android中的onCreate()多次被调用导致bindService被多次调用的问题
- C++报错:全局变量重定义或是多次定义的
- “对象被多次指定;已忽略多余的指定”并伴有"无法解析的外部符号 "xxx",该符号在函数 "xxx"中被引用的错误"
- 线程多次创建的问题
- NSNotification多次执行的问题
- AsResult[XXX]的问题
- 同一函数多次定义同名静态变量问题
- .net CF控件的OnResize被多次执行的问题
- ListView的adapter中getView被多次调用的问题
- Application的onCreate方法被调用多次的问题
- 多个类定义attr属性重复的问题:Attribute "xxx" has already been defined
- C#操作Redis存储基础(续一)
- Hive之JDBC操作
- flume 自定义kafka sink运行失败:找不到Callback
- Android 如何获取View的高宽、坐标
- Jquery Ajax使用方法
- XXX被多次定义的问题
- 仿真video in to axi_stream和axi_stream to video out
- [Leetcode]_25 Reverse Nodes in k-Group
- CNN情感分析(文本分类)
- Java程序员的成长之路
- 自定义viewgroup中的事件分发
- 数值得整数次方——小问题引起大思考
- MySQL设置log-bin后服务器重启失败的解决办法
- 现代前端技术解析(1)