Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Andrey040601
4 / 4 / 3
Регистрация: 13.07.2014
Сообщений: 127
Завершенные тесты: 5
#1

Компилятор не дает написать main без int. Ошибка в книге, или в С так можно? - C++

25.08.2014, 17:57. Просмотров 957. Ответов 21
Метки нет (Все метки)

В книге И.Ш. Хабибуллина "Программирование на языке высокого уровня C/C++" во всех примерах пишут так:
C++
1
2
3
4
main()
{
 
}
Компилятор не дает написать main без int. Ошибка в книге, или в С так можно?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2014, 17:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Компилятор не дает написать main без int. Ошибка в книге, или в С так можно? (C++):

В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.? - C++
Не понимаю, с чего начинать. Заранее спс.

int main() или int main(void)? - C++
чем отличается : не сообщаю о наличии аргументов функция не принимает никаких аргументов.......

Компилятор сообщает об отсутствии точки с запятой в строке int main() { - C++
int main() {; Я поставил точку с запятой но проблемма осталась почему ?

В чем разница между int main(){} и int main(void){}? - C++
Только недавно начал изучать язык, и появилось несколько вопросов: 1) в чем разница между int main(){} и int main(void){}? 2) в чем...

Компилятор выдает ошибку " in function int main ()" - C++
#include <cstdlib> #include <iostream> using namespace std; int main() { int a,b,v,z,n,i,mas; cout>>"vvedite...

Ошибка в программе, адресная арифметика(Компилятор выдает ошибку "Cannot conver int* to int") - C++
#include <stdio.h> #include <time.h> #include <stdlib.h> #include <alloc.h> int size=(int*)malloc(50*sizeof (int)) { for...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
korvin_
1832 / 1301 / 202
Регистрация: 28.04.2012
Сообщений: 4,688
26.08.2014, 10:38 #16
Цитата Сообщение от Tulosba Посмотреть сообщение
Мнение Страуструпа по теме
Он так странно пишет, будто в Bell Labs не работа(л|ет) и о Plan 9 ничего не знает.
1
gru74ik
Модератор
Эксперт CЭксперт С++
4180 / 1808 / 197
Регистрация: 20.02.2013
Сообщений: 4,944
Записей в блоге: 21
26.08.2014, 10:53 #17
Цитата Сообщение от korvin_ Посмотреть сообщение
Он так странно пишет, будто в Bell Labs не работа(л|ет) и о Plan 9 ничего не знает.
А чего у них там повсюду void main() ?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
26.08.2014, 11:08 #18
Книгу сжечь.

Для 2006 года пора бы старпёрам высунуть нос из окна.
Читайте нормальные книги дабы потом не пришлось переучиваться
0
korvin_
26.08.2014, 13:27
  #19

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
А чего у них там повсюду void main() ?
Да.

Кликните здесь для просмотра всего текста
http://doc.cat-v.org/plan_9/programming/c_programming_in_plan_9
exits and the void return from main require a bit of explanation. The traditional way of representing errors and status returns in C is with numbers: a return from main or the argument to exit represents a status return from a program, and errno stores information about error returns from functions. The traditional behavior is to have zero mean no error and any other value mean error; ANSI C defines EXIT_SUCCESS and EXIT_FAILURE for status returns from programs.

This gets restricted very quickly. ANSI C only defines three standard values for errno (domain error, range error, and illegal multibyte sequence) and two values for status return. And sometimes an integer won’t tell you enough. For example, let’s take the UNIX lseek system call, which manipulates the file read/write position:

long lseek(int fd, long offset, int from);

If any argument is invalid (for example, from not 0, 1, or 2), lseek returns with errno set to EINVAL (specific to UNIX). But this doesn’t tell you which argument was invalid, or how many; it only says that something was not right. We can add the appropriate errno values to resolve this problem. But what about a library that defines over 1,000 values for errno? On machines with small int sizes, this chokes your program and defeats the purposes of both sides.

A better idea is to give the programmer the ability to handle any error that comes in without worry of losing standards compliance or clarity, and to generate any error without falling into a surfeit of possibility. So the designers of Plan 9 decided to use strings instead of numbers. Each program has an error string which is set by routines when an error occurs. And each program returns a string to the host environment with the exits system call. The value given to exits can be accessed from rc through the environment variable $status.

0
gru74ik
Модератор
Эксперт CЭксперт С++
4180 / 1808 / 197
Регистрация: 20.02.2013
Сообщений: 4,944
Записей в блоге: 21
26.08.2014, 13:32 #20
Цитата Сообщение от korvin_ Посмотреть сообщение
Он так странно пишет, будто в Bell Labs не работа(л|ет) и о Plan 9 ничего не знает.
Цитата Сообщение от gru74ik Посмотреть сообщение
А чего у них там повсюду void main() ?
Цитата Сообщение от korvin_ Посмотреть сообщение
Да.
Ну, может он от такого подхода совсем не в восторге? Тогда как раз и понятно, почему у себя в FAQ'e он так пишет.
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
26.08.2014, 13:52 #21
Цитата Сообщение от korvin_ Посмотреть сообщение
Он так странно пишет, будто в Bell Labs не работа(л|ет) и о Plan 9 ничего не знает.
Всё таки не стоит ставить знак равенства м/у мнением сотрудника (бывшего) и подхода в конкретном продукте (к которому он вероятно и отношения не имел) компании. Да и к тому же взгляды могут меняться со временем.
Цитата Сообщение от korvin_ Посмотреть сообщение
и о Plan 9 ничего не знает.
Я вот, кстати, до сегодняшнего дня не знал
0
korvin_
26.08.2014, 13:54     Компилятор не дает написать main без int. Ошибка в книге, или в С так можно?
  #22

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Всё таки не стоит ставить знак равенства м/у мнением сотрудника (бывшего) и подхода в конкретном продукте (к которому он вероятно и отношения не имел) компании.
Я и не ставлю.
Цитата Сообщение от Tulosba Посмотреть сообщение
Я вот, кстати, до сегодняшнего дня не знал
Но ты же не Бьерн Страуструп. =)

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2014, 13:54
Привет! Вот еще темы с ответами:

Написать int main() для программы - C++
Здравствуйте, есть код класса дерева и массива для кнопок. помогите написать правильно главную функцию. Компилятор жалуется. #include...

Ошибка компиляции. int main() - C++
При компиляции выдает ошибку, пишет что не поддерживает int по умолчанию. #include <stdio.h> #include <conio.h> int a = { 0, 0,...

Ошибка main' must return 'int' - C++
Line 6: error: '::main' must return 'int' compilation terminated due to -Wfatal-errors!!! Вот задаие::Данная матрица А (4,5), элементы...

int main() и int _tmain(int argc, _TCHAR* argv[]) - C++
При создании нового консольного приложения Microsoft Visual С++ 2010 Express создает начальный шаблон #include "stdafx.h" int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.08.2014, 13:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru