struct mystruct first =
{
.data = 10,
.mylist = LIST_HEAD_INIT(first.mylist)
} ;
struct mystruct second ;
second.data = 20 ;
INIT_LIST_HEAD( & second.mylist ) ;
Birinchi variantda qo’llanilgan LIST_HEAD_INIT metodi – bu quyidagi
makros:
#define LIST_HEAD_INIT(name) { &(name), &(name) }
Linux yadrosida oddiy funktsiyalar o’rniga makroslar qo’llaniladi.
Makroslar samarali kodlar yaratishda unumdorlikni ta’minlashga xizmat qiladi.
Ikkinchi variantda inline-funktsiyasi qo’llanilgan, bu funktsyai 7-listingda
keltirilgan.
Listing 7. Ro’yxatni initsializatsiya qilish funktsiyasi
Do'stlaringiz bilan baham: |