C programlama void pointer kavramı
Tür çevrim C programlama dili olmadan void işaretçi çözümlemesi mümkün mü?
Ayrıca, bir işaretçi alabilir ve yaygın bir işlev yapabiliriz işaretçi bu boşluğu kullanarak geçersiz bir işaretçi ve deposu olan bir fonksiyon genelleme herhangi bir yolu var mı?
örneğin
void abc(void *a, int b)
{
if(b==1)
printf("%d",*(int*)a); // If integer pointer is received
else if(b==2)
printf("%c",*(char*)a); // If character pointer is received
else if(b==3)
printf("%f",*(float*)a); // If float pointer is received
}
Bu işlev, genel,-eğer başka ifadeler kullanmadan yapmak istiyorum, mümkün mü?
Ayrıca eğer void işaretçi kavramını açıklamak bazı internet makaleleri varsa, o zaman eğer URL sağlayabilirseniz faydalı olacaktır.
Ayrıca, void işaretçiler işaretçi aritmetiği mümkün mü?
CEVAP
İşaretçi türü-döküm C programlama dili olmadan... boşluğu inceleyebilirsiniz mümkün
Hayır, void
tip yokluğu gösterir, başvuru ya da atayabilirsiniz bir şey değildir.
işaretçi almak ve saklamak genelleştirilmiş bir işlev yapabiliriz işaretçi bu boşluğu kullanarak geçersiz bir işaretçi ve bir işlevi genelleme herhangi bir yolu yoktur
Sadece düzgün uyumlu olmayabilir gibi taşınabilir bir şekilde başvuru yapamazsınız. Olabilir bir konuda bazı mimariler gibi KOL, nereye işaretçi için bir veri türü olması gerekir uyumlu sınırında boyutu veri türü (örneğin, işaretçi olarak 32-bit tamsayı olmalı uyumlu 4 baytlık sınırı için başvuru yapıldı).
Örneğin, okuma 5* *void*
:
/* may receive wrong value if ptr is not 2-byte aligned */
uint16_t value = *(uint16_t*)ptr;
/* portable way of reading a little-endian value */
uint16_t value = *(uint8_t*)ptr
| ((*(uint8_t*)(ptr 1))<<8);
Ayrıca, void işaretçiler mümkün olan işaretçi aritmetik
İşaretçi aritmetiği işaretçi altında somut değer ve dolayısıyla boyutu eksikliği nedeniyle void
işaretçileri mümkün değildir.
void* p = ...
void *p2 = p 1; /* what exactly is the size of void?? */
iphone - programlama yoluyla gezinti k...
Memoization ve dinamik programlama ara...
Base pointer ve işaretçi yığını nedir ...
Ne'noktası sabit void s?...
Veritabanlarını ve Fonksiyonel Program...