Я не буду называть эти стили, но варианты языков (или диалекты).
Стиль кодирования - это набор необязательных соглашений, которые могут не соблюдаться.Например, некоторые стили кодирования требуют, чтобы все имена макросов были прописными (но ваш код будет компилироваться, если вы не будете следовать этому правилу).
Ваш "2 nd стиль"называется Kernighan & Ritchie C .Это старый C, определенный в конце 1970-х годов (в самом первом издании известной книги Кернигана и Ричи по C ; последующие издания соответствовали более поздним стандартам C).Это устаревший язык.
Современные компиляторы часто следуют стандарту C99 ISO (опубликован в 1999 году), который был заменен новым стандартом C11 (опубликованв 2011 г.).
Компиляторы GCC принимают стандарт C99 с программным аргументом -std=c99
.Я настоятельно рекомендую скомпилировать с gcc -Wall -std=c99
;Последние компиляторы GCC (то есть 4.6 и 4.7) принимают -std=c11
IIRC для более нового стандарта C11 .
Не кодируйте сегодня в старых Кернигане и РичиДиалект C: он устарел и все реже поддерживается компиляторами.IMHO C99 - хороший стандарт, которому нужно следовать, если вы осторожны.И извлекать выгоду из некоторых его функций (в частности, возможность смешивать объявления и операторы внутри блока; более старые диалекты C необходимы для размещения всех объявлений в начале блока.).
Стандарт улучшился, в частности, потому что он добавил функции и более точен по отношению к существующим системам и практикам (например, многоядерные процессоры)