Veri türünü C olarak elde etmenin bir yolu var mı? ÖrneğinVeri türünü C'deki bir değişkenden alabilir miyim?
:
int foo; if (foo is int) { // do something }
falan gibi: peşin
if (typeof(foo) == typeof(int)) { // do something }
teşekkür.
Veri türünü C olarak elde etmenin bir yolu var mı? ÖrneğinVeri türünü C'deki bir değişkenden alabilir miyim?
:
int foo; if (foo is int) { // do something }
falan gibi: peşin
if (typeof(foo) == typeof(int)) { // do something }
teşekkür.
Buna türün iç gözetimi veya yansıması denir ve C dili tarafından desteklenmez. Muhtemelen kendi yansıma kütüphanenizi yazmanız gerekecek ve bu önemli bir çaba olacaktır.
Teşekkürler, bunu zaten hayal ettim. Benim gibi bir şey #_Fine MY_INT ve daha sonra özel tipimi tutmak için başka bir değişken ayarla, değil mi? Teşekkürler. – user464230
veya bir alan tanımlayabilirsiniz, bir alan bir "typeid" tutuyor ve diğer alan yapı içinde saklamak istediğiniz herhangi bir değeri tutmak için yeterince büyük. – Jimmy
@Jimmy: BİR VARYANT? http://msdn.microsoft.com/en-us/library/ms221627.aspx –
Orada GCC bir typeof
uzantısıdır, ancak ANSI C değil: http://tigcc.ticalc.org/doc/gnuexts.html#SEC69
Ve OP'nin istediği için kullanışlı değil. –
foo
bir int
isim foo
bağlıdır olması. Asla değişemez. Öyleyse böyle bir sınav nasıl anlamlı olur? Hiç işe yaramadığı tek durum makrolardadır, burada foo
farklı tip değişkenlere veya ifadelere genişleyebilir. Bu durumda, konuyla ilgili benim geçmiş sorulardan bazıları bakmak olabilir:
Type-generic programming with macros: tricks to determine type?
Tamamen katılıyorum. – Greg
Hiç anlam vermedin ... neyse ... soru emddudley tarafından çözüldü – user464230
foo tipi tanımlanır eğer türünü bilemeyiz tek zaman typedef tarafından - eğer durum buysa, örneğiniz bunu yansıtmalıdır. Ve neden türüne bağlı bir şeye ihtiyacın var? Asıl sorununuzu çözmenin bir yolu olabilir, ancak asıl probleminizi sunmadınız.
Bu bir int, kaynak kodunda bir bakış açısı ile bileceksiniz - yansıma gerek yok! – nos
Soruyu gerçekten anlamadım. Eğer foo'yu int olarak tanımlarsanız, neden sonra derleme zamanında türünü almanız gerekir? Gözlemleme, polimorfizmi uygulamak için nesne yönelimli programlamada yararlıdır, ancak neden C.'de gereksinim duyduğunuzu anlamıyorum. – Greg