#define
yerine C kodunda hangi avantaj var? Her iki Açıkçası ön-işlemcisi çalışacaktırNeden #defines yerine C typedefs kullanılır?
void func()
{
UBYTE byte_value = 0;
/* Do some stuff */
return byte_value;
}
olarak kullanılabilir zaman
Bir örnek olarak, herhangi bir avantaj
#define UBYTE unsigned char
fazla
typedef unsigned char UBYTE
kullanılarak orada Bir #define
'u genişletin, birile olmaz, ama bu bana belirli bir avantaj ya da dezavantaj gibi görünmüyor; Bir sorun olduğunda ya kullanımın yapı hatasıyla sonuçlanmayacağı bir durum düşünemiyorum.
Önişlemciyi deneyin: "Kötüye kullan, Kötüye kullan. Bana istediğini hisset!" +1 –
Önişlemci istismarını adil bir şekilde yapıyorum, ancak başka bir yolu olmadıkça türler için değil. (Geçtiğimiz 20 yılda kodlar arası 64-bit tamsayı işlemek için kod yazarken * bir kere * gerek duydum. Bu, o sırada mevcut derleyiciler için şaşırtıcı bir şekilde zordu ve daha fazla #ifdefs ile bitti tercih edilen.) –
İşaretçi türleri de işlev ... – hugomg