Ресурс, кратко описывающий стандарты C и C ++ - PullRequest
12 голосов
/ 11 ноября 2011

Получив здесь неправильный ответ, потому что я не был в курсе стандартов C, я начал искать какое-то место, которое дает описание того, что в стандартах C и C ++.

Мне не нужны полные стандарты, ссылки на которые я нашел в Где найти текущие стандартные документы C или C ++? или подробные технические обсуждения. Вместо этого я хотел бы что-то, что кратко описывает стандарт, со ссылками на фактический стандарт, если я хочу проверить его более тщательно, и, возможно, сказать, в каком стандарте была введена функция.

Есть ли такой ресурс в наличии?

РЕДАКТИРОВАТЬ : Небольшая предыстория вопроса: я программирую на C уже более 20 лет, и когда я узнал об этом, не так много было стандартизировано. И то, что было в официальном стандарте, не было широко реализовано. За эти годы я стал достаточно хорошим программистом Си, и мои друзья и коллеги обращаются ко мне за помощью, когда у них возникают проблемы.

Однако, когда я узнал C, мне сказали, что такие вещи, как разметка памяти для многомерных массивов, зависели от реализации, и когда я увидел вопрос по этому вопросу, я сказал, что он не был стандартизирован только для того, чтобы мне сказали, что я был неправ. Но даже зная это, мне трудно найти какое-то место, где говорится, что оно в стандарте, и еще сложнее найти, в каком стандарте оно было впервые введено.

Если бы было какое-то место, в котором говорилось: «Структура памяти многомерных массивов была стандартизирована в C9x, в разделе Y стандартного документа» Было бы легко найти и передать это человеку, задающему вопрос. Меня не интересует, каков фактический макет, только то, что он стандартизирован, и где искать, если я действительно хочу получить окончательный ответ по этому поводу.

Это, конечно, касается других вещей. Например, зная, что заголовочный файл "<yyy.h>" предписан стандартом "C90", и где в стандарте я должен искать обоснование и его содержание. Очень трудно найти эти вещи, когда они разложены, если собрать их в одном месте, их будет намного легче найти.

Ответы [ 5 ]

6 голосов
/ 11 ноября 2011

Все, что является не стандартом, будет либо не окончательным, либо будет упрощено таким образом, что будет гораздо менее чем полезным. И все определенное или действительно полезное будет в основном стандартным .

Я не знаю ни одного ресурса, который охватывал бы каждый раздел стандарта C (или даже значительное их количество) в упрощенном виде, и я бы сомневался в его полезности. Как правило, у вас есть специфическая проблема, которую вам нужно решить, и в этом случае вы будете искать эту конкретную проблему - подавляющему большинству людей не нужен стандарт, особенно когда они у вас под рукой есть такой ресурс, как SO.

Если вы разработчик языка или любите изучать темные углы языка в мучительных деталях, тогда да, получите стандарт, это бесценно. Если вы просто используете язык изо дня в день (даже в качестве эксперта), вы можете обойтись без него, просто немного погуглив (a) .


(a) Убедитесь, что одним из условий поиска является site:stackoverflow.com: -)

4 голосов
/ 11 ноября 2011

Я нашел http://en.cppreference.com/w/cpp сейчас становится довольно хорошо! (всегда намного более полный)

1 голос
/ 11 ноября 2011

Полагаю, вы уже знакомы со старыми стандартами и хотите освежить новые менее используемые вещи.

Вот хорошее прочтение для C99. Оно охватывает изменения и содержит примечания к действующему стандарту. Также есть кое-что о C ++.

Википедия отлично подходит для C ++ 11. Отлично подходит для основ, но не вдаваться в подробности.

Если вы полностью понимаете язык, вы можете сделать вывод о стандарте. Для странных угловых случаев вы должны будете обратиться к стандарту.

1 голос
/ 11 ноября 2011

В стандарте так много материала, что просто невозможно кратко его описать. Я не думаю, что ваш вопрос действительно отвечает как написано. Если вам нужна ссылка на стандартную библиотеку, книга Йосуттиса http://www.amazon.com/Standard-Library-Tutorial-Reference/dp/0201379260/ref=sr_1_1?ie=UTF8&qid=1320994652&sr=8-1 всегда фантастическая.

0 голосов
/ 11 ноября 2011

Я думаю, что некоторые другие, отвечающие на этот вопрос, правы: редко кому нужен абсолютно авторитетный стандартный документ ISO, если вы не пишете компилятор или что-то в этом роде. Для меня, я считаю, что основных книг на двух языках создателей языка достаточно для почти всех моих потребностей. Это:

Язык программирования C Брайана Кернигана и Денниса Ричи

Язык программирования C ++ Бьярн Страуструп

Ищите последние выпуски каждого из них, хотя быстрый поиск в Amazon не показывает ни обновленных последних версий языков (C99 и C ++ 11). Возможно, вам придется дополнить сетевыми источниками или, возможно, взглянуть на A C Primer Plus и Professional C ++ .

...