Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

RusFAQ.ru: Программирование на C / C++

Выпуск № 572
от 25.08.2004, 12:44

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 1856
Отправлено ответов: 3564
Активность: 192.0 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

DiGiT
Статус: Начальный
Общий рейтинг: 108.33
[Подробней >>]
SackTap
Статус: Доверительный
Общий рейтинг: 111.14
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 109.45
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1848. Расскажите, пожалуйста, о внутреннем представлении различных типов данных в C/C++ и о преобразовании... (ответов: 1)
Вопрос № 1850. Народ, я понимаю что глупый вопрос, но в чем разница между: main() и int main() и зачем иногда пишут... (ответов: 3)

Вопросов: 2, ответов: 4


 Вопрос № 1848

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



Вопрос отправлен: 21.08.2004, 23:41
Отправитель: Анатолий (letu_a_p@rambler.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает DiGiT

Добрый день, Анатолий!
Вообще говоря, преобразованием типов данных занимается компилятор. И к языку С это в принципе не имеет прямого отношения. Вот пример (int)100000.2 даст различный вариант для компилятора, у которого тип int в 2 байта и для того, у которого 4 байта. Хотя нормальный компилятор должен выдавать предупреждения по поводу возможной потери значения при преобразовании. Что есть внутреннее представление данных. наверное это тебе тоже не стоит знать пока, по крайней мере пока сам не захочешь разобраться, а в рамках ответа в рассылке я не смог бы ответить. Ведь если писать в стандарте С или С++, то можно абстрагироваться от платформы(они в принципе для этого и были созданы) хотя бы там, где можно обойтись без расширений языка. В принципе внутреннее представление типов данных- это просто набор байтов, только в одной системе он может быть одним, а вдругой другим. И например тип int, пересланный по тому же протоколу TCP/IP, из одной системы у же может не содержать то же самое значение для другой системы. Поэтому например в той же UNIX все конфигурации заданы строковыми значениями.

Ответ отправлен: 23.08.2004, 03:17
Отправитель: DiGiT


 Вопрос № 1850

Народ, я понимаю что глупый вопрос, но в чем разница между:
main() и int main()
и зачем иногда пишут:
int main(int argc, char *argv[])
В чем фишка?



Вопрос отправлен: 22.08.2004, 10:52
Отправитель: jeka

[Следующий вопрос >>] [Список вопросов]

Отвечает SackTap

Доброе время суток, jeka!
последний вариант пишут, когда хотят получить от операционки команднуй строку (аргументы).

Ответ отправлен: 24.08.2004, 11:52
Отправитель: SackTap


Отвечает DiGiT

Доброе время суток, jeka!
main() то же самое, что и void main(). А что компиляторы до сих пор не ругаются на эту ересь ?
В стандарте написано черным по белому ФУНКЦИЯ main() ДОЛЖНА ВОЗВРАЩАТЬ ЗНАЧЕНИЕ ТИПА INT.
Поэтому единственно верный вариант - это int main(). (И просьба хватит читать стандарт языка от Кернигана и Ритчи, он уже далеко не тот что и 40 лет назад)
Второе если не используешь параметры (int argc, char *argv[]) их можному опускать. первый из них содержит количество параметров, переданных в функцию, а второе указатель на массив указателей на параметры, переданные в фунцию main(простите за такое нагруженное предложение, но в си именно так). То есть если argc содержит 2 то argv[0] - указатель на первый параметр, переданый в функцию, argv[1] - указательна на второй параметр, переданный в функцию.
ЗЫ Читайте книги, в них содержатся знания и достижения умнейших людей в ИТ(которые к сожалению в основном жители USA)
< /b>
Ответ отправлен: 23.08.2004, 03:26
Отправитель: DiGiT


Отвечает vitya

Приветствую Вас, jeka!
по стандарту языка С и С++ единственное верное определение является
int main() или int main(int argc, char ** argv)
во втором случае программе передаются параметры коммандной строки.
В старом С запись main() {} работала, так как в старом С все функции без возв. типа определялись, как int f(), теперь этого нет.

Ответ отправлен: 23.08.2004, 08:46
Отправитель: vitya



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (24)
C / C++ (14)
Perl (6)
Builder / Delphi (13)
Pascal (24)
Basic / VBA (4)
Java / JavaScript (5)
PHP (11)
Криптография (7)
WinAPI (12)
Радиоэлектроника (9)
Пользователю
Windows 95/98/Me (44)
Windows NT/2000/XP (59)
"Железо" (39)
Поиск информации (19)
Администратору
Windows NT/2000/XP (39)
Linux / Unix (16)
Юристу
Гражданское право (10)
Семейное право (7)
Трудовое право (9)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
Rambler's TopShop Rambler's Top100
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
http://subscribe.ru/feedback/
Адрес подписки
Отписаться

В избранное