010

跨文件共享结构体指针数组


结构体:

struct Name

{

unsigned int id;

};


结构体指针数组:

struct Name name[3];


跨文件共享结构体指针数组:

条件:文件dataprcs.h+dataprcs.cpp调用函数对结构体指针数组进行处理;mainwindow.h+mainwindow.cpp对函数进行调用;结构体指针数组作为实参,通过函数改变实际的值


dataprcs.h

#ifndef GETDT_H

#define getdt_h

#include <QObject>


struct AcqData

{

unsigned char state;

};

extern struct AcqData acqdata[3];


class GETDT:public QObject

{

Q_OBJECT

public:

GETDT();

~GETDT();

public slots:

void func(struct AcqData *acqdata);

signals:

//some other func

};

#endif



dataprcs.cpp

#include "dataprcs.h"

using  namespace std;

struct AcqData acqdata[3]=

{

{0},

{0},

{0},

};


GETDT::GETDT()

{

}

GETDT::~GETDT()

{

}

void GETDT::func(AcqDat* acqdata)

{

qDebug()<<acqdata[0].state;

acqdata[0].state=1;

}



mainwindow.h

#include<QMainWindow>

#include"dataprcs.h"

//some other declarations



mainwindow.cpp

#include "mainwindow.h"

//some other func & declarations

void MainWindow::on_button_clicked()

{

getdt->func(acqdata);

qDebug()<<acqdata[0].state;

}




ref:

https://stackoverflow.com/questions/11072244/c-multiple-definitions-of-a-variable

<C++ Primer Plus> chp 4.9, program 4.23, page 118 - page 119 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值