LINUX.ORG.RU
ФорумTalks

пара слов о С


0

0

Читаю "C advanced programming" и поражаюсь, на сколько идиотский синтаксис у С. Судите сами:

typedef int *ptr, (*fun)(), arr[5];

Итого:

ptr - это указатель на int
fun - указатель на ф-цию, возвр-ю int
arr - массив из 5 int

Я уже молчу про хитроумные объявления с указателями на функции и массивами. ИМХО Такое можно было придумать только после жесткой обкурки.

anonymous

Ерунда, нет там ничего хитроумного. Надо просто логику таких объявлений понимать.

Deleted
()

Всё пучком. typedef'ы рулят.

JackYF ★★★★
()
Ответ на: комментарий от phasma

дело в том, что можно было сделать нормальный синтаксис без потери в выразительности и низкоуровневости. Но судя по истории, рассказанной в начале книги, С делали в таким же макаром, как PHP, даже хуже - взяли BCPL, припудрили его, а потом на ходу приделывали понравившиеся фичи. Получился K&R, а потом пошло-поехало. "Я его слепила из того, что было".

anonymous
()

Синтаксис объявления отражает синтаксис использования. Нормальная идея, хотя с указателями на функции получается неуклюже.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> дело в том, что можно было сделать нормальный синтаксис без потери в выразительности и низкоуровневости. Но судя по истории, рассказанной в начале книги, С делали в таким же макаром, как PHP, даже хуже - взяли BCPL, припудрили его, а потом на ходу приделывали понравившиеся фичи. Получился K&R, а потом пошло-поехало. "Я его слепила из того, что было".

ну как бы, если ты не осилил Си, то сравнивать с похапэ его не стоит ... замечательный язык с гибким синтаксисом

phasma ★☆
()
Ответ на: комментарий от Sidrian

>>А чё? Строгий такой язык. Мышление нормальное будет. > Шутка или троллишь?

Нет, он прав: обжект паскаль - это красивый и строгий язык. А язык определяет мышление.

anonymous
()
Ответ на: комментарий от anonymous

> Нет, он прав: обжект паскаль - это красивый и строгий язык. А язык определяет мышление.

мышление вендузятника.

phasma ★☆
()

Ну и кто тебя, болезного, заставляет все пихать в один typedef?

Реально проблемы могут возникнуть только с пониманием указателей на функции. Тут с тобой согласны даже Керниган и Ритчи. Ну так это инструмент для опытных, новички и без них обойдутся.

shumer
()

Свиду жесть конечно, но привыкнуть можно

anonymous
()

>Читаю "C advanced programming"

Это что за книжка ? Кто автор ?

>Я уже молчу

Продолжайте в том же духе. Не смогли понять, это ваша проблема, может не стоит продолжать ?

P.S.: Бардак начинается в головах.

robot12 ★★★★★
()

если не секрет то что тут такого идиотского?

Dudraug ★★★★★
()
Ответ на: комментарий от INFOMAN

Тогда я немножко перефразирую: всё вдруг становится похожим на дверь, если ты хочешь прищемить себе яйца =)

frame ★★★
()
Ответ на: комментарий от robot12

>>Читаю "C advanced programming"

>Это что за книжка ? Кто автор ?

немного напутал, книга называется "Expert C programming. Deep C secrets" Peter van der Linden.

anonymous
()

> и поражаюсь, на сколько идиотский синтаксис у С

Ну так не пиши на нем. C это такой хороший кроссплатформенный ассемблер. А дальше есть более удобные для своих задач языки и компиляторы из них (в тот же C, да).

anonymous
()

Топикстартер -- эмобыдлокодер-неосилятор. Синтаксис С идеален и бесподобен!

Lumi ★★★★★
()
Ответ на: комментарий от anonymous

> Но судя по истории, рассказанной в начале книги, С делали в таким же макаром, как и (...)

Сильно хочеться продолжить: ..и 100% живых естественных языков ;-)

anonymous
()
Ответ на: комментарий от hibou

+1 после прехода на c++ очень здорово дисциплинирует, объявляя переменные.

anonymous
()
Ответ на: комментарий от anonymous

> взяли BCPL, припудрили его, а потом на ходу приделывали понравившиеся фичи.

Именно так, K&R&Co писали DSL для того чтобы поиграть в игрушку на новом компе (см. Unix Haters Book).

А плохо писать можно на любом языке, синтаксис Си тут ни при чем.

anonymous
()
Ответ на: комментарий от anonymous

Блин, я что, собственный мозг уже не судьба включить? Синтаксис С исключительно лаконичен и логичен для тех времён. Вспомните объёмы оперативки и дисков (лент). Неявный int и typedef-ы (ну и МАКРОСЫ вестимо) позволяли сокращать исходный текст. А использование всяких += и ++ помимо тогоже сокращения текста позволяло отказаться от сложного оптимизатора в компиляторе. Да-да, высокоуровневый ассемблер, как здесь уже говорили. Ещё раз повоторяю: назначение С это быстрая разработка кроссплатформенных приложений в ограниченных ресурсами пространстве.

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.