作用域相同而名字不同的兩個變量不會衝突,作用域相同名字也相同的兩個變量會產生衝突。
C語言中在一定作用域內,結構標記,聯合標記,枚舉標記有相同的名字空間,且這個名字空間和普通變量的名字空間
是不一樣的。所以在一個作用域內對標記和變量使用相同的名字不會產生錯誤,而標記和標記或變量和變量名字相同則會出錯。
例如,下面的代碼在C中不會有衝突。
struct rect {double x;double y;};
int rect
但C++ 中標記和變量在一個名字空間中作用域相同而名字不同的兩個變量不會衝突,作用域相同名字也相同的兩個變量會產生衝突。
C語言中在一定作用域內,結構標記,聯合標記,枚舉標記有相同的名字空間,且這個名字空間和普通變量的名字空間
是不一樣的。所以在一個作用域內對標記和變量使用相同的名字不會產生錯誤,而標記和標記或變量和變量名字相同則會出錯。
例如,下面的代碼在C中不會有衝突。
struct rect {double x;double y;};
int rect
但C++ 中標記和變量在一個名字空間中