Этот сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Утилита cdecl

Какая интересная утилита есть, оказывается, а я и не знал! Позволяет по любой декларации типа в языке Си получить описание на английском или наоборот — свернуть такое описание в тип. Вот примеры:

cdecl> explain char *(* const volatile (*(*hydra)(int (*)(void), char * const * restrict))[13]) (unsigned long, char * const [static 3]);
declare hydra as pointer to function (pointer to function (void) returning integer, restricted pointer to constant pointer to character) returning pointer to array 13 of constant volatile pointer to function (unsigned long integer, non-empty array 3 of constant pointer to character) returning pointer to character

cdecl> declare fp as pointer to function (pointer to char) returning pointer to array of pointer to char
char* (*(*fp)(char*))[];
2 комментария
hsh 1 мес

Ух ты, какое удачное применение ИИ!

Евгений Степанищев 1 мес

Кстати, да, мне про её существование сказал ChatGPT.

hsh 1 мес

мне про её существование сказал ChatGPT.

да вот кстати, мне он рассказал про Multicast DNS — как IoT устройства организовывают распределённый днс в локальной сети. И в компьютерах можно подключаться друг к другу по `ssh server1.local`, а не по постоянно меняющемуся айпишнику