![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Странно, но новичкам которые хотели бы изучать программирование как правило рекомендуют прочитать книгу по одному из популярных языков программирования (в зависимости от того с чем хочет работать начинающий в будущем). Однако на мой взгляд в первую очередь стоило бы почитать про OS в которой придеться работать. Не даром говорят что, к примеру, Windows не самая подходящая среда для обучения программированию. Каково ваше мнение, уважаемые разработчики, умудренные опытом работы с C/C++?
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
язык программирования никак с ОС не связан.
|
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Это я знаю. Это и не имелось ввиду
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| vitlic |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.2.2007 Где: где home(){return где="тут"} Репутация: 1 Всего: 1 |
Таненбаум Э. "Современные операционные системы" 3-е издание
Наверно лучшая книга в этой области там всё есть, и процессы, и трейды, и файловая система, да и все остальное. С примерами из проглого и настаящего. имхо. Ни одна книга по программированию не заменит столь всеобъемлющее руководство. И не даром этот курс, "Операционные системы", уже стандарт во всех высших учебных заведениях. А вот после этой книжки, можно и про окна у Петзольда прочитать, и даже написать что-нибудь. |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
и что? сначала нужно научиться языку, а уж потом особенностям его применения в различных ситуациях. Или Вы предлагаете начинать изучение программирования с синхронизирования потоков или WinAPI? |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Я предлагаю сначала узнать самое основное об архитектуре системы чтобы поменьше возникало вопросов в процессе изучения языка программирования и тех его аспектов которые зависимы от ОС в которой он будет применяться. Например в стандарте про язык C четко выписано что размер типа данных char зависит от кодировки применяемой в каждой конкретной ОС. Есть и другие вещи.
Бегло осмотрев Руссиновича, узнал что в Windows применяеться Unicode, а значит размер типа char должен быть равен 2 байтам для этой ОС. vitlic, У тебя есть эта книга? Это сообщение отредактировал(а) main - 28.2.2007, 16:47 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
галиматья какая-то. кто тебе сказал, что это зависит от виндовс? С чего ты взял, что в Windows нельзя пользоваться однобайтным char? |
|||
|
||||
| S.A.G. |
|
||||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Приведу цитату из книги С.Праты "Язык программирования C": "Если говорить в общем, то в языке С гарантируеться, что данные типа char имеют достаточно большие размеры для того, чтобы вместить основной набор символов той вычислительной системы, в которой реализован язык C.... В языке C байт определяеться как число битов, используемых для представления данных типа char, поэтому в такой системе байт должен иметь длину не 8 битов, а 16 (по крайней мере, так следует из документации по языку C)" Как известно, байт не может быть большим чем 8 битов, поэтому в C тип char должен иметь размер 16 битов чтобы уместить основной набор символов Windows(Unicode). Так записано в стандарте. Мне кажеться термина "Однобайтный char" в языке С для Windows нет. Скорее всего имееться ввиду часть таблицы Unicode, вмещающая стандартные коды ASCII. Это сообщение отредактировал(а) main - 28.2.2007, 17:06 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
||||
|
|||||
| vinter |
|
||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
все это галиматья, все то что ты привел, это особенности архитектуры x86, а не ОС, в никсах так же есть юникод, изучать надо язык, а уж потом особенности ОС если это вообще понадобится(СП), а если нет то нафиг это не нужн, программирование есть алгоритмическая база.
Добавлено @ 17:10
канешно нет, char всегда однобайтный и никаких уточнений здесь не надо Добавлено @ 17:11
стандарт не читал, но вообще этот тип называется wchar_t |
||||
|
|||||
| S.A.G. |
|
||||||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
vinter,
Ничего не придумал. Информация почерпана только из книги С.Праты а он в написании своей книги опирался на стандарт.
Архитектура определяет какую кодировку удобнее применить для ОС?
Думаю с этим согласяться не все. Мне кажеться что перед тем как начать изучать язык (чтобы его потом применить для написания приложений в конкретной ОС), желательно ознакомиться хотябы с самыми общими принцыпами ее работы. -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
||||||
|
|||||||
| vitlic |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 22.2.2007 Где: где home(){return где="тут"} Репутация: 1 Всего: 1 |
размер char равен 1. Это неписанная истина)
книжка лежит тут Так как она в формате djvu, там и прога для просмотра. |
|||
|
||||
| vinter |
|
||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
нет, байтовую структуру
зачем?? я вот столкнулся с такой проблемой, только когда надо было писать дефрагментатор и все, сначала язык надо знать! как ты думаешь зачем стандарт нужен?? если будешь писать по стандарту(исп. ф-ии описанные в стандарте), то получишь кроссплатформенное приложения, и тебе будет плевать на особенности ОС. |
||||
|
|||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
vitlic,
В таком случае возникали бы проблемы при вводе/выводе символов из таблицы Unicode. А их ведь нет Спасибо за книгу! -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
ты прямо открыл мне глаза.... Я то все эти годы думал, что под Windows пишу и однобайтный char использую. char предназначен для символов ASCII , а для символов Unicode нужно применять другой тип. |
|||
|
||||
| S.A.G. |
|
||||||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Fazil6,
В стандарте такого нет. Вероятно так была разрешена проблема разработчиками компиляторов C для Windows - для обработки ASCII использовать однобайтный char, а для виндового юникода ввести специальный двухбайтовый тип. Но ведь можно было ввести и двухбайтный char.. наверное от такого решения отказались чтобы обеспечить поддержку старого кода/программ. vitlic, но ты говорил о 3-ем издании книги, а там 2-е. Может ошибся? vinter,
Что имееться ввиду? В случае кроссплатформенных приложений ты прав.
Согласно стандарту, размер типа char в Windows должен быть равен 2 байтам а не 1. Однако тут разработчики компиляторов поступили по-другому. Если бы я захотел обработать символы Unicode, используя при этом тип char(стандарт), то ничего хорошего бы у меня не вышло. О никакой кроссплатформенности тут уже речь не идет, нетак-ли? Думаю ознакомиться с OS Internals необходимо перед чтением книги про конкретный язык, чтобы знать и понимать о чем идет речь. Ведь часто описываються операции с файлами, ввод/вывод. А это уже зависимые от конкретной системы вещи.. Это сообщение отредактировал(а) main - 28.2.2007, 17:55 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
||||||
|
|||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |