Для предпочтения я использую третий стиль, за исключением включения охранников, для которого я использую второй стиль.
Мне вообще не нравится первый стиль - я считаю #define
инструкцией препроцессора, хотя на самом деле это не так, за #
следует инструкция препроцессора define
. Но поскольку я так думаю об этом, кажется, что разделять их неправильно. Я ожидаю, что текстовые редакторы, написанные людьми, защищающими этот стиль, будут иметь блок отступ / отступ, который работает с кодом, написанным в этом стиле. Но я не хотел бы сталкиваться с этим с помощью текстового редактора, который не сделал.
Нет смысла потворствовать древним препроцессорам, где # должен быть первым символом строки, если вы не можете также перечислить в верхней части головы все другие различия между этими реализациями и стандартным C, чтобы избежать другие вещи, которые вы могли бы сделать, что они не будут поддерживать. Конечно, если вы действительно работаете с предстандартным компилятором, вполне справедливо.