· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.BOOKS —› В книге Джесса Либерти: "Освой самостоятельно С++ за 21 день"

Посл.отвђт Сообщенiе


Дата: Окт 10, 2004 22:29:28

В заданиях за 2 день.
Есть задачка: Написать самую малую программу, которую впоследствии можно скомпилировать и скомпоновать.
В конце книги приведен ответ:
int main(){}

На мой взгляд, автор допустил ошибку, надо было:
void main(){}
или:
int main(){return 0;}


Дата: Окт 10, 2004 22:34:18 · Поправил: Noble Ghost

„int main(){}“
дык это должно ж скомпилироваться во чтото вроде
push ebp
mov ebp, esp
mov esp, ebp
pop ebp
ret

а вот это:
„int main(){return 0;}“
в
push ebp
mov ebp, esp
mov eax, 0 ; xor eax, eax
mov esp, ebp
pop ebp
ret
mov esp, ebp
pop ebp
ret

без учета оптимизации.
тч ошибки нет, имхо.

upd: действительно, гоню :) gn8


Дата: Окт 10, 2004 22:35:28

Noble Ghost

Не путай грешное с праведным.
EvilsInterrupt - ты полностью и абсолютно прав.


Дата: Окт 10, 2004 22:35:31

Но автор привел возврат значения типа int главной процедурой. Разве это можно?


Дата: Окт 10, 2004 22:37:16

Пардон, сумбурно выразился. Но вроде вы поняли что что-то вернуть надо!


Дата: Окт 10, 2004 22:56:58

Это теоретически. Практически компилятор вякнет, но все скомпилит.
Это касается и WinMain (правда все в M$VC, насчет остальных врать не буду).


Дата: Окт 10, 2004 23:02:34

_Juicy
Спасибо! Я этого незнал, но угодно ли вам дать асю либо другой способ связи, есть некоторые вопросы!


Дата: Окт 11, 2004 03:45:08

Не разводите трындаду вокруг этих вопросов. Страуструп рулит.


Дата: Окт 11, 2004 08:39:35

> „автор привел возврат значения типа int главной процедурой. Разве это можно?“

По стандару так и положено:

„It (main) shall have a return type of type int, but otherwise its type is implementation-defined.“


Дата: Окт 11, 2004 08:54:44

уважаемый S_T_A_S_
Ты кажется не заметил моего второго сообщения! :))


Дата: Окт 11, 2004 10:47:27

Как по мне, так я как раз твоё 2е сообщение и комментировал :)
Поскольку у нас, видимо, различные системы отсчёта, ты лучше пальцем покажи, что именно я не заметил :-)

На всякий случай:

„If control reaches the end of main without encountering a return statement, the effect is that of executing
return 0“


Дата: Окт 11, 2004 13:03:28 · Поправил: NoName

2 volodya
„Не разводите трындаду вокруг этих вопросов. Страуструп рулит.“
Гы, мне очень нравятся его филосовские книжки по С++.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.087