| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Базовые вопросы. |
| Автор: Opik 31.8.2005, 18:14 | ||
| Я конечно понимаю, но я только первые 5 минут учу C++ ^)) так тчо камнями не кидайте.. почему после Hello world идет <null> ? второй вопрос как соединять строки например: printf("bla bla bla"+var+"bla bla bla"); или же просто printf("dawdaw %s dadw ", var); ? и третий вопрос - double func(int x, int n); т.е объявление функции, или что это такое? почему это обязательно делать?
|
| Автор: Mal Hack 31.8.2005, 18:30 | ||||||
Выводишь число, как строку, это тебе не PHP. Попробуй %d
printf( "andkjh %s sjhfsk %f" , var1 , var2 );
Прототип функции. Этим ты показываешь что функция есть. |
| Автор: Opik 31.8.2005, 18:31 | ||
дык, а сама функция толком ничего не значит? |
| Автор: maxim1000 31.8.2005, 18:35 | ||
чтобы знать, где заканчивается строка... |
| Автор: Mal Hack 31.8.2005, 18:35 | ||
Тело функции это код, а прототипом ты показываешь не только что у тебЯ она есть, но и какие типы данных у значений, которые ту будешь в функцию передавать и какое значение (какого типа точнее) будет возвращать функция. |
| Автор: maxim1000 31.8.2005, 18:37 | ||
а сама функция может быть определена в другом файле или где-нибудь внизу в этом файле, куда компилятор еще не дошел, вот он и не знает, есть ли такая функция или это - просто опечатка |
| Автор: Opik 31.8.2005, 18:40 | ||
получается я 2 раза объявляю типы, может быть достаточно 1 раз? при объявлении функции? |
| Автор: Дрон 31.8.2005, 18:50 | ||
Насчёт Си не знаю, но в С++ точно нет. Дело в том, что в С++ могут быть функции с одним и тем же именем, но различающиеся типом параметров. |
| Автор: Mayk 31.8.2005, 19:09 | ||||
В си всё обстоит гораздо страшнее. Компилятор думает(шибко умный), что если ф-ция не определена, то она 1) существует (пусть так) 2) принимает те значения, которые ей передают(эт прально), 3)возвращает int(??? с чего???). Что может не соответствовать действительности. На форуме уже как-то поднимался вопрос, почему, допустим
Выдает 0.00000. А выдает потому, что компилятор считает в данном случае, что возвращается int, а не double. |