豚吐露@wiki
スコープが違うと同じ変数名で宣言できる
最終更新:
ohden
-
view
スコープが違うと同じ変数名で宣言できる
環境
VisualC++ 2005
VisualC++ 2005
変数宣言とスコープのバグ?
スコープが異なると同じ名前で宣言できるらしい。
スコープが異なると同じ名前で宣言できるらしい。
e.g.)CStringの例
- CString temp = _T("test");
- _tprintf(_T("%s\n"), temp);
- {
- _tprintf(_T(" %s\n"), temp);
- CString temp = _T("hoge");
- _tprintf(_T(" %s\n"), temp);
- }
- _tprintf(_T("%s\n"), temp);
-
実行結果
test test hoge test
e.g.)intの例
- int i = 10;
- _tprintf(_T("%d\n"), i);
- {
- _tprintf(_T(" %d\n"), i);
- int i = 15;
- _tprintf(_T(" %d\n"), i);
- }
- _tprintf(_T("%d\n"), i);
-
実行結果
10 10 15 10
他の言語なら多重定義のコンパイルエラー出してくれると思うが...C++って言語仕様でこういう書き方認めてるの?(´・ω・`)
更新日: 2011年08月04日 (木) 15時27分42秒