Сначала все предыдущие объявления __FUNCT__
игнорируются компиляцией с использованием #undef
, затем идентификатор объявляется снова и устанавливается в строку "main" в строке #define __FUNCT__ "main"
Лично я никогда не видел, чтобы кто-нибудь делал это, устанавливая его в "main", я вижу, что это полезно, если вы хотите использовать библиотеку или что-то, но не хотите использовать объявленное ими имя функции, конечно, я не Не знаю, почему вы бы сделали этот идентификатор идентификатором, вместо того, чтобы просто создавать другую функцию, принимающую те же параметры и называть ее как угодно.
В любом случае, я не верю, что это стандартное соглашение по программированию на C, и из ограниченного фрагмента кода неясно, для чего именно оно используется или почему оно выполняется.