Есть ли разница между следующими конструкциями
1
#define UUID_SIZE 16
typedef struct {
__u8 b[UUID_SIZE];
} uuid_t;
2
typedef unsigned char uuid_t[16];
На мой неопытный глаз, кажется, они говорят то же самое. Если нет, пожалуйста, кто-нибудь может объяснить мне разницу? Если они одинаковые, есть ли причина отдавать предпочтение одному другому?
(Справочная информация здесь первая из ядра Linux, а вторая из модуля, который я пытаюсь загрузить в ядро. Модуль не загружается из-за конфликта typedef на uuid_t. Я надеюсь, что если второй такой же, как первый, я могу просто удалить строку из модуля, иначе мне нужно будет переименовать ее везде).