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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.