linux में, container_of
मैक्रो प्रतीत होता है "अतिरिक्त" कोष्ठक में संलग्न है:हमें ब्लॉक मैक्रो के आसपास कोष्ठक की आवश्यकता क्यों है?
#define container_of(ptr, type, member) ({ \
const typeof(((type *)0)->member) *__mptr = (ptr);
(type *)((char *)__mptr - offsetof(type,member));})
यह करने के बजाय
, हम बस
#define container_of(ptr, type, member) { \
const typeof(((type *)0)->member) *__mptr = (ptr);
(type *)((char *)__mptr - offsetof(type,member));}
उपयोग कर सकते हैं?
क्या ब्रांड्स अनिवार्य हैं या वे केवल सावधानी के लिए हैं?
यह जीसीसी में चिह्नित किया जाना चाहिए न कि सी से ....... –