স্ট্রাক্ট এবং সি 2 এইচ সহ বেনামী ইউনিয়নগুলিতে ইন্টারফেসিং


100

কীভাবে কেউ একটি .chs ফাইলে সি কোডটির এই অংশটিকে এনকোডিং করতে যায় যাতে সি 2 এইচ এটি তুলনামূলকভাবে সুন্দর কিছুতে রূপান্তর করতে পারে?

typedef enum {
    MONOME_BUTTON_UP        = 0x00,
    MONOME_BUTTON_DOWN      = 0x01,
    MONOME_ENCODER_DELTA    = 0x02,
    MONOME_ENCODER_KEY_UP   = 0x03,
    MONOME_ENCODER_KEY_DOWN = 0x04,
    MONOME_TILT             = 0x05,

    /* update this if you add event types */
    MONOME_EVENT_MAX        = 0x06
} monome_event_type_t;

typedef struct monome monome_t; /* opaque data type */
typedef struct monome_event monome_event_t;

typedef void (*monome_event_callback_t)
    (const monome_event_t *event, void *data);

struct monome_event {
    monome_t *monome;
    monome_event_type_t event_type;

    /* __extension__ for anonymous unions in gcc */
    __extension__ union {
        struct {
            unsigned int x;
            unsigned int y;
        } grid;

        struct {
            unsigned int number;
            int delta;
        } encoder;

        struct {
            unsigned int sensor;
            int x;
            int y;
            int z;
        } tilt;
    };
};

12
আপনার পক্ষে প্রথমে সমস্যাটি সমাধান করার চেষ্টা করা আরও উত্পাদনশীল, তারপরে ভাষা এবং / অথবা সরঞ্জাম সম্পর্কে নির্দিষ্ট প্রশ্ন নিয়ে আসুন। যে প্রশ্নগুলি কোনও বিভ্রান্তির কেন্দ্রস্থল হয় এবং নির্দিষ্ট প্রয়োগের অপ্রয়োজনীয় জটিলতা এড়ায়, সেগুলি আরও ভাল। উদাহরণস্বরূপ, আপনি একটি সাধারণ কাঠামো সম্পর্কে জিজ্ঞাসা করতে পারেন এবং / অথবা একটি সাধারণ ইউনিয়ন সম্পর্কে তার জ্ঞানটি আপনার সমস্যার জন্য প্রয়োগ করতে পারেন।
থমাস এম ডুবুইসন

4
@ থমাস এম। ডুবুইসন আমি মনে করি আপনি যুক্তিসঙ্গত বক্তব্য রেখেছেন। আমি এর মাধ্যমে আরও কিছুক্ষন কাজ করতে যাচ্ছি।

@ ইউসাইম্বল আপনার প্রশ্নের উত্তর আছে কি? দয়া করে এটি এখানে যোগ করুন বিবেচনা করুন :)
আলফাকিনি

4
হাই আনসিম্বল, এ সম্পর্কে কোনও খবর? আপনি এটি কাজ করে এবং কিভাবে?
ক্যাস্পার থুল হানসেন

উত্তর:


1

এটি সম্পর্কে: কোডটি পরিবর্তন করুন যাতে আপনি সদস্যদের নাম রাখেন। মেমরিতে লেআউটটি একই রকম হয় যাতে এটি বাইনারি সামঞ্জস্যপূর্ণ হয়। লিবের প্রতিটি সংস্করণের জন্য আপনাকে এই প্যাচটি করতে হবে।

struct monome_event {
    monome_t *monome;
    monome_event_type_t event_type;

    /* __extension__ for anonymous unions in gcc */
    __extension__ union {
        struct me_grid {
            unsigned int x;
            unsigned int y;
        } grid;

        struct me_encoder {
            unsigned int number;
            int delta;
        } encoder;

        struct me_tilt {
            unsigned int sensor;
            int x;
            int y;
            int z;
        } tilt;
    };
};
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.