Using C++
???enum T { T1 = 0, T2 };???如上的enum類型,如何知道其有兩個枚舉值呢????對于這個問題,我還真沒注意過,想當然的用sizeof(T),結果得到4!面對有些不知所措,因為實在想不出還有什么方法可以取得想要的2了。。。???我知道有種常用的方法是在enum中的最后再定義一個類型,根據enum的特性其值恰就是數量,但這就要求再增加新的值時,一定要放在其前面。雖然只是一個方法,但總覺得有些怪,沒事定義一個這樣的值干嘛????所以,各位其他方法嗎?
posted on 2009-11-11 16:08 codejie 閱讀(5357) 評論(16) 編輯 收藏 引用 所屬分類: C++ 、隨筆而已
木有 回復 更多評論
搞不懂你咋有這么變態的需求。sizeof(T)當然是4,就是一個Integer么編譯過程中,這些應該直接當作了常量處理吧?所以你上哪里知道有多少常量呢 回復 更多評論
@OwnWaterloo悲劇~ 回復 更多評論
@Liu嗯,我需求就是要知道‘有多少常量’,不是很變態吧。。。。另:為了C,我又買了三本書:C語言,C專家,C陷阱。你看我夠勤奮吧~ 回復 更多評論
enum T { T1 = 0, T2, // ... Tn, T_MAX }; 讀 T_MAX 確定個數 回復 更多評論
@溪流嗯,我就是不想定義個T_MAX。。。。嘿嘿。。。 回復 更多評論
@codejie 那,木有了 回復 更多評論
@溪流杯具啊~ 回復 更多評論
@codejie有時候我覺得,你是不是勤奮的過頭了…… 回復 更多評論
@Liu哎呀,不想平常的你啊。。。我以為你會說我--吃了空。。。 回復 更多評論
This works in C#: enum ae { aa, bb } public static void enumTest() { var el = Enum.GetNames(typeof(ae)).ToList(); el.ForEach(e => Console.WriteLine(e)); }Hope this could help in CPP. 回復 更多評論
@FreewayCPP這樣應該不行,沒有對應的函數。。。(CPPBLOG.COM應該rollback過了,我前面的回復沒有了。。。) 回復 更多評論
得到一個總數循環判斷,,, 回復 更多評論
@cnbt有了總數,還循環個毛毛啊... 回復 更多評論
@codejie 哈哈:) 回復 更多評論