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

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.68
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
#1

Слабо создать программу, которая много чего делает, а в main только return 0? - C++

22.01.2010, 01:58. Просмотров 2355. Ответов 26
Метки нет (Все метки)

Пояснение:

Имеется некая функции
C++
1
Function() {}
Причем она может делать что угодно.
Кто-то знает, как запустить эту функцию НЕ из main?

Например:

C++
1
2
3
4
5
6
7
8
9
void Function() // Любая ф-ия, которая делает что угодно. (Пример)
{
    cout << "Succeed!\n";
}
 
int main()
{
    return 0;
}
(чё-то сделать, main() НЕ менять!)
Результат:
Bash
1
2
3
overpower8@Milla-home:~/Projects$ g++ Program.cpp -o Program
overpower8@Milla-home:~/Projects$ ./Program
Succeed!


Я знаю, как это сделать. Но знает ли кто-либо еще?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2010, 01:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Слабо создать программу, которая много чего делает, а в main только return 0? (C++):

Почему в одних случаях пишут void main(), а в других случаях int main() {return 1;} - C++
Препод мне доказывает, что void в main`е писать неправильно, а объяснить не может почему. Кто расскажет?)

Создать программу, которая подсчитывает количество чисел в тексте и выводит на екран все слова, состоящие только из латинских букв - C++
Создать программу , которая подщитывает количество чисел в тексте (не цыфр, а именно чисел); выводит на екран все слова , что состоят...

Как в main() создать указатель на функцию, которая находится в классе? - C++
В этом примере как определить указатель на функцию F()? class A { public: bool F(int &amp;a, int &amp;b) { return a&lt;b; } }; int...

`main' must return `int' - C++
Почему возникает такая ошибка? И я правильно программу написал? Она должна считать сумму двух чисел! #include &lt;iostream&gt; #include...

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

В чём смысл return в main()? - C++
Есть ли смысл возвращать значение переменной в main()? Если да - зачем? #include&lt;iostream&gt; using namespace std; int main() ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
22.01.2010, 12:17  [ТС] #16
>> taras atavin

Соврешенно верно. Я предложил размяться. А кому не интересно, попросил бы проигнорировать эту тему.
Evg
Эксперт CАвтор FAQ
17633 / 5857 / 377
Регистрация: 30.03.2009
Сообщений: 16,155
Записей в блоге: 26
22.01.2010, 12:30 #17
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
Мое решение идентично с вашим. А вот предложенное товарищем Gravity - круче!
Предложение Gravity - это gnu-расширение, т.е. код, который, грубо говоря, кроме как на gcc работать не будет. Единственный ПЕРЕНОСИМЫЙ вариант - тот, который написал ISergey. Всё остальное - это зависит либо от компилятора, либо от ОС, либо от используемой библиотеки и т.д.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.01.2010, 12:34 #18
Единственный? Я так не думаю. Разве нельзя покопаться в готовом исполняемом коде и подменить стартовый адрес в заголовке файла?
OVERPOWER8
19 / 19 / 1
Регистрация: 29.11.2009
Сообщений: 224
22.01.2010, 12:45  [ТС] #19
>> Evg

Предложение Gravity - это gnu-расширение, т.е. код, который, грубо говоря, кроме как на gcc работать не будет.
А вот и не правда! У меня на G++ он идеально заработал!
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
22.01.2010, 12:46 #20
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
А вот и не правда! У меня на G++ он идеально заработал!
g++ это и есть команда GNU-компилятора.
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
22.01.2010, 12:48 #21
Цитата Сообщение от OVERPOWER8 Посмотреть сообщение
А вот и не правда! У меня на G++ он идеально заработал!
мда... GCC содержит в себе G++
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.01.2010, 12:50 #22
C
1
G++;
,
C++
1
G++;
,
C#
1
G++;
по-моему это переносимый код инкремента переменной с именем g.
Evg
Эксперт CАвтор FAQ
17633 / 5857 / 377
Регистрация: 30.03.2009
Сообщений: 16,155
Записей в блоге: 26
22.01.2010, 13:13 #23
Цитата Сообщение от taras atavin Посмотреть сообщение
Единственный? Я так не думаю. Разве нельзя покопаться в готовом исполняемом коде и подменить стартовый адрес в заголовке файла?
А ещё можно перепрошить биос и чтобы он сразу при запуске программы hello world печатал. Можно пойти ещё дальше и внести изменения прямо в процессор, чтобы наверняка работало

OVERPOWER8, gcc и g++ это по большому счёту одно и то же, называемое общим словом "GNU-комилятор"
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
22.01.2010, 13:15 #24
Evg,
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
22.01.2010, 22:36 #25
Знаю из WinMain можно.

Добавлено через 1 минуту
Я вообще ни въеду к чему эти вопросы.

Добавлено через 3 минуты
OVERPOWER8:
Ты ещё битцепсем похвастайся.

Добавлено через 4 минуты
как запустить эту функцию НЕ из main?
inline void f1() {
Function();
}
HIMen
4129 / 1378 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
22.01.2010, 22:50 #26
Цитата Сообщение от taras atavin Посмотреть сообщение
по-моему это переносимый код инкремента переменной с именем g.
C++
1
2
3
4
5
6
7
8
#include <iostream>
int main() 
{ 
    int i=0;
    int r = (i++)+(i++); 
    std::cout << r; 
    return 0; 
}
Код
out: 0
C#
1
2
3
4
5
6
7
8
9
10
using System;
class Program
{
    static void Main(string[] args)
    {
        int i = 0;
        int r = (i++) + (i++);
        Console.WriteLine(r);       
    }
}
Код
out: 1
переносимого кода не бывает
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
22.01.2010, 22:56 #27
Цитата Сообщение от HIMen Посмотреть сообщение
переносимого кода не бывает
уже 1000 раз обсуждалось. ключевые слова для гугла(без кавычек): "sequence point i++"
Цитата Сообщение от HIMen Посмотреть сообщение
int r = (i++)+(i++);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2010, 22:56
Привет! Вот еще темы с ответами:

Написать программу которая делает перестановки введенных симолов - C++
Доброго всем времени суток. вот такая задачка. 4. Написать программу которая делает перестановки введенных симолов Все бы ничего. Но тут...

Что делает Return в плюсах? - C++
Судя по прочитанной литературе по с++ return что-то возвращает в вызывающую программу, но в одном месте попался странный код и не только...

Что делает return в функции void? - C++
void handle_arrival(vector&lt;Car&gt;&amp; cars, vector&lt; stack&lt;string&gt; &gt;&amp; parking_lot, const string&amp; plate) { // TODO: Handle car arrivals ...

Не понятно что делает __success(return >= 0) - C++
Увидел определение HRESULT typedef __success(return &gt;= 0) long HRESULT; не ясно что это означает? это похоже команда препроцессора...


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

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

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