LinuxForum.Fans
Тема

[Ищу] Керниган и Ритчи "Язык С"

Автор: LuckyStar 14 сообщений 7425 просмотров
#39592

Собственно, сабж.

Ищу книжку в электронном виде. Керниган И Ритчи "Язык С". Версию без ошибок :)

На днях взялся за маломальское изучение С, скачал книжку, дочитал до первого примера... и о! Мой ужас!
Там все написано так (об #include даже речи нет):

text
   MAIN ()
   {
           PRINTF("HELLO, WORLD\N");
   }

Естественно, это даже не работало:

text
sid@luckystar:~$ cc hello.c 
hello.c:3:19: warning: unknown escape sequence '\N'
/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
/tmp/cc0WjysB.o: In function `MAIN':
hello.c:(.text+0xe): undefined reference to `PRINTF'
collect2: ld returned 1 exit status

Только потом мне человек подсказал, что правильно будет так:

text
#include <stdio.h>  
main () 
{ 
printf ("Hello, World!\n") ;
}

И да, так работает:

text
sid@luckystar:~$ cc hello.c 
sid@luckystar:~$ ./a.out 
Hello, World!
#39767

Бывают в бумажном виде :)
За ссылку спасибо ;)

#39778

LuckyStar, прямо так и было %) прописными буквами??? Тяжёлый случай.

#39783
Iced написал:
прописными буквами??? Тяжёлый случай.

Наверно это экземпляр с lib.ru http://lib.ru/CTOTOR/kernigan.txt
Там оно в таком виде еще с прошлого века лежит oO

#39798

Может, просто раньше язык C не был регистрочувствительным?

#39806

Ага, и #include не было ^_^

#39811

К #include не надо цепляться, в данном случае отсутствие прототипа не повод для ошибки и неработы бинарника. Компилятор не сможет проверить соответствие формальных параметров фактическим на этапе компиляции, о чём честно предупредит, но только и всего ;-).

text
void main()
{
  printf("Hello, world!\n");
}
text
$ gcc hello.c
$ ./a.out
Hello, world!
$
#40427

книга писалась во времена PDP-11. потому это не ошибки.
тогда на многих архитектурах байты были 6ти-битными, потому символов было 63 (не 255), из-за этого один большой регистр.
#include - деректива препроцессора, который не есть компилятор.
препроцессор стандартизировали где-то в 80ых.

нужна литература более поздняя либо переработанный осовремененный вариант.

#40430

Если кому надо - могу pdf-ку скинуть. Пишите в личку мыло.

#40437

ch.dys.: понятно, спасибо за разъяснение :)
Iced: а вариант какой? Старый или новый?

#40577

LuckyStar, да вроде новый...

#45191

Iced: я уже недели 2 жду от тебя книжку в pdf :) Как-то все так и нет...

#45199

Млин, надо в личку или джаббер тыкать. :) Я же склеротик.

http://narod.ru/

// Запрещено выкладывать ссылки на варез.
Sonic

Войдите или зарегистрируйтесь, чтобы ответить.