外部全局变量未在此范围内声明

时间:2015-03-09 16:04:20

标签: c++ variables qt5 global extern

回顾这里关于堆栈溢出的一些例子,我仍然无法使用全局变量进行编译。 Csize已在renderarea.h中以extern声明。

#ifndef RENDERAREA_H
#define RENDERAREA_H

#include <QBrush>
#include <QPen>
#include <QPixmap>
#include <QWidget>

extern int CSize;

然后在renderarea.cpp中使用包含的renderarea.h将其设置为等于10

#include "renderarea.h"
#include <QTimer>

#include <QPainter>

int Xresolution = 800;
int Yresolution = 480;

int startAngle = 100 * 16;
int arcLength = 100 * 16;
int CSize = 10;

然后我尝试在renderarea.cpp

的QRect函数中使用它
//! [8]
void RenderArea::paintEvent(QPaintEvent * /* event */)
{
static const QPoint points[4] = {
    QPoint(800, 0),
    QPoint(0, 0),
    QPoint(0, 480),
    QPoint(800, 480)
};

QRect rect(0, 0, CSize, Csize);

QPainterPath path;
path.moveTo(20, 80);
path.lineTo(20, 30);
path.cubicTo(80, 0, 50, 50, 80, 80);

//! [8]

似乎这应该没问题,但是要得到Csize&#39;编译时未在此范围内声明 任何提示?

1 个答案:

答案 0 :(得分:1)

问题是您使用的是Csize而不是CSize,您声明为全局。请注意c++中的标识符区分大小写,因此CsizeCSize不同