1.conflicting declaration
出现这个错误是项目中定义了相同变量名,找到不同定义的地方,修改变量名就可以了
2.const
-
限定符声明变量只能被读
-
必须初始化
-
在另一连接文件中引用const常量
-
便于进行类型检查
-
可以避免不必要的内存分配
-
可以通过函数对常量进行初始化
-
是不是const的常量值一定不可以被修改呢?
-
请分清数值常量和指针常量,以下声明颇为玩味:
优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边际效应)
枚举常量不会占用对象的存储空间,他们在编译时被全部求值。但是枚举常量的隐含数据类型是整数,其最大值有限,且不能表示浮点数。
-
使用const的一些建议
1 要大胆的使用const,这将给你带来无尽的益处,但前提是你必须搞清楚原委;
2 要避免最一般的赋值操作错误,如将const变量赋值,具体可见思考题;
3 在参数中使用const应该使用引用或指针,而不是一般的对象实例,原因同上;
4 const在成员函数中的三种用法(参数、返回值、函数)要很好的使用;
5 不要轻易的将函数的返回值类型定为const;
6除了重载操作符外一般不要将返回值类型定为对某个对象的const引用;
3.全局变量
在.h中定义:
public:
static int collection_Frequency; //采集频率
在。cpp中初始化(函数外)
int MainWindow::collection_Frequency=0;
在其他函数中添加此头文件,使用变量即可
例如:
#include "mainwindow.h"
ADPara.Frequency = MainWindow::collection_Frequency; // 采样频率(Hz)
4.qfile的write
write中使用QByteArray类型,可以把结构体转化为QByteArray类型加入文件
QByteArray head_buff;
head_buff.resize(sizeof(header[Index]));
memcpy(head_buff.data(),&header[Index],sizeof(header[Index]));
file.write(head_buff);