1. 程式人生 > 其它 >cocos2dx中default報錯:default標籤跳過“”的初始化操作

cocos2dx中default報錯:default標籤跳過“”的初始化操作

技術標籤:C/C++switch

當我們使用switch語句時,有時候使用了定義語句,會出現default標籤跳過“”的初始化操作的報錯。
以下程式碼在case Colour部分中定義了tex, tp兩個變數,但是case Colour部分沒有用大括號{}括起來。因此報錯。
switch (color)
{
case White:
initWithFile(“map/white.png”);
setScaleX(width / 50);
break;
case Blue:
initWithFile(“map/blue.png”);
setScaleX(width / 50);
break;
case Colour:

Texture2D* tex = Director::getInstance()->getTextureCache()->addImage(“map/colour.png”);
Texture2D::TexParams tp = { GL_LINEAR, GL_LINEAR,GL_REPEAT,GL_REPEAT };
tex->setTexParameters(tp);
setTexture(tex);
setTextureRect(Rect(0, 0, width, 50));
break;
default:
break;
}
在這裡插入圖片描述

如果出現這種問題,只要在default後面加上{}大括號就可以了。

switch (color)
{
case White:
	initWithFile("map/white.png");
	setScaleX(width / 50);
	break;
case Blue:
	initWithFile("map/blue.png");
	setScaleX(width / 50);
	break;
case Colour:
{
	Texture2D* tex = Director::getInstance()->getTextureCache()->addImage("map/colour.png");
	Texture2D::TexParams tp = { GL_LINEAR, GL_LINEAR,GL_REPEAT,GL_REPEAT };
	tex->setTexParameters(tp);
	setTexture(tex);
	setTextureRect(Rect(0, 0, width, 50));
	break;
}
default:
	break;
}