Quelle est la raison de définir macro cette façon:Pourquoi la macro est-elle déclarée de cette façon?
#define test_errno(msg) do{if (errno) {perror(msg); exit(EXIT_FAILURE);}} while(0)
Je veux dire quelle est la raison derrière do{}while(0)
? Bien sûr, il sera fait une seule fois, zéro est constant, ne peut pas changer à non nul en quelque sorte, alors pourquoi utiliser une telle construction?
un ''' manquant. la macro considère cela et elle a besoin d'une fin ';', donc cela ressemble à une vraie fonction. – vvy