Em mới học C++ ạ.
Lúc đầu em viết code như thế này thì code không chạy và báo lỗi.
#include <iostream>
using namespace std;
int main()
{
enum Color
{
COLOR_BLACK, // assigned 0
COLOR_RED, // assigned 1
COLOR_BLUE, // assigned 2
COLOR_GREEN, // assigned 3
COLOR_WHITE, // assigned 4
COLOR_CYAN, // assigned 5
COLOR_YELLOW, // assigned 6
COLOR_MAGENTA // assigned 7
};
void printColor(Color color)
{
if (color == COLOR_BLACK)
std::cout << "Black";
else if (color == COLOR_RED)
std::cout << "Red";
else if (color == COLOR_BLUE)
std::cout << "Blue";
else if (color == COLOR_GREEN)
std::cout << "Green";
else if (color == COLOR_WHITE)
std::cout << "White";
else if (color == COLOR_CYAN)
std::cout << "Cyan";
else if (color == COLOR_YELLOW)
std::cout << "Yellow";
else if (color == COLOR_MAGENTA)
std::cout << "Magenta";
else
std::cout << "Who knows!";
}
Color color(COLOR_WHITE);
printColor(color);
return 0;
}
Nhưng khi em chuyển enum và printColor ra ngoài main() thì nó lại chạy.
Cao nhân nào giải thích giúp em với!

(chỉ xét trên mặt ngữ nghĩa, vì khi compile thì
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?