C++创建全局变量建议

建议将全局变量创建在.h/.cpp文件中,其中.h文件声明变量,.cpp文件中定义变量值。

在.h文件中定义变量,则工程多次#include该文件会出现“该文件已经被使用”。

具体示例如下:

synchronize_data.h

//
// Created by qiaowei on 2023-10-28.
//

#ifndef CPPGUIPROGRAMMINGWITHQT4INCLION_SYNCHRONIZE_DATA_H
#define CPPGUIPROGRAMMINGWITHQT4INCLION_SYNCHRONIZE_DATA_H

#include <QChar>
#include <QSemaphore>

/**
 * @date   2023-10-28
 * @author qiao wei
 * @brief  要传输的总数据数量。
 */
extern const int kDataSize;

/**
 * @date   2023-10-28
 * @author qiao wei
 * @brief  数据池容量。
 */
extern const int kBufferSize;

/**
 * @date   2023-10-28
 * @author qiao wei
 * @brief  数据池。初始阶段,数据池未存放任何数据
 */
extern QChar buffer[];

/**
 * @date   2023-10-30
 * @author qiao wei
 * @brief  自由信号标。在初始阶段有kBufferSize个自由信号标可用。数据池每放入1个数据,自由信号标就减1个。
 */
extern QSemaphore free_semaphore;

/**
 * @date   2023-10-30
 * @author qiao wei
 * @brief  可用信号标。在初始阶段没有数据可用,所以可用信号标数量为0。当数据池放入1个还未用的数据时,可用信号标就增加1个。
 */
extern QSemaphore used_semaphore;

#endif //CPPGUIPROGRAMMINGWITHQT4INCLION_SYNCHRONIZE_DATA_H

synchronize_data.cpp

//
// Created by qiaowei on 2023-11-01.
//

#include "synchronize_data.h"

const int kDataSize{1000};

const int kBufferSize{4};

QChar buffer[kBufferSize];

QSemaphore free_semaphore{kBufferSize};

QSemaphore used_semaphore{0};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值