Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.09.2019
Сообщений: 1
1

Куда лучше писать прототип функции, до функции main() или внутри него?

09.04.2020, 12:57. Показов 503. Ответов 5
Метки нет (Все метки)

Вопрос тупой, но хочется писать код чуток лучше.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2020, 12:57
Ответы с готовыми решениями:

Прототип функции не виден внутри класса...
Использую Rad Studio 2010 Для доступа к функции из DLL, описан прототип функции следующим...

Как лучше учиться: писать консольные приложения или оконные? И если писать оконные, то на чём лучше?
На днях я узнал про Borland c++ builder и хочу воспользоваться им, но можно и писать код, что-бы...

Куда лучше писать энергонезависимую информацию
Всем здравствуйте. Возник такой вопрос куда лучше писать энергонезависимую информацию, в моем...

Вызов метода из vector(a) в функции main без использования вызова execute внутри класса
Добрый день столкнулся с проблемой, что просто не могу вызвать метод из вектора в функции main. Код...

5
6727 / 4530 / 1835
Регистрация: 07.05.2019
Сообщений: 13,715
Записей в блоге: 1
09.04.2020, 13:45 2
Цитата Сообщение от illmoon Посмотреть сообщение
Вопрос тупой, но хочется писать код чуток лучше.
Прототип пишется перед использованием функции, снаружи любой из функций. Т.е. - до функции main()
0
2 / 1 / 1
Регистрация: 09.04.2020
Сообщений: 4
09.04.2020, 14:40 3
Также при желании прототипы функций можно записывать в отдельном заголовочном файле .h, а код их реализации в отдельном файле .c (если пишите на С) или .cpp (С++), тем самым отделяя интерфейс от низкоуровневых вещей.
0
С чаем беда...
Эксперт CЭксперт С++
8933 / 4484 / 1228
Регистрация: 18.10.2014
Сообщений: 9,962
10.04.2020, 21:12 4
Цитата Сообщение от illmoon Посмотреть сообщение
Вопрос тупой, но хочется писать код чуток лучше.
Объявления (прототипы) функций обычно нужны только для взаимодействия между разными единицами трансляции, по каковой причине их пишут в заголовочных файлах. Это уже само собой снимает ваш вопрос.

Что же касается организации отдельной единицы трансляции... просто располагайте ваши функции в порядке от низкоуровневых к высокоуровневым (main - в самом низу файла) и необходимости заниматься таким избыточным действием, как предварительное объявление функций, не будет вообще (кроме ряда редких случаев).
1
Эксперт C
25816 / 16099 / 3454
Регистрация: 24.12.2010
Сообщений: 35,197
11.04.2020, 14:27 5
Цитата Сообщение от illmoon Посмотреть сообщение
или внутри него?
Тогда этот прототип будет виден только внутри main
Транслятор не сможет даже проверить соответствие реализации прототипу.
Цитата Сообщение от illmoon Посмотреть сообщение
хочется писать код чуток лучше.
Пока не поймете смысла своих действий, делайте, как все.
0
С чаем беда...
Эксперт CЭксперт С++
8933 / 4484 / 1228
Регистрация: 18.10.2014
Сообщений: 9,962
11.04.2020, 21:19 6
Цитата Сообщение от Байт Посмотреть сообщение
Тогда этот прототип будет виден только внутри main. Транслятор не сможет даже проверить соответствие реализации прототипу.
Это почему же это вдруг не сможет?

Уж кто-кто, а транслятор прекрасно понимает, что локально объявленный прототип все равно ссылается на внешнюю функцию и все "соответствия" может проверять одинаково, независимо от того, где функция объявлена. Вопросы видимости для него - не препятствие

C
1
2
3
4
5
6
7
8
int main()
{
  void foo(int, int, int);
}
 
void foo(int a)
{
}
Код
error: conflicting types for 'foo'
    6 | void foo(int a)
      |      ^~~
note: previous declaration of 'foo' was here
    3 |   void foo(int, int, int);
      |        ^~~
Как видите, все прекрасно проверяется.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2020, 21:19

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Дан указатель: double **p = 0; Выполните следующие задания (решения можно оформлять внутри функции main):
Дан указатель: double **p = 0; Выполните следующие задания (решения можно оформлять внутри функции...

Рекурсия или запуск функции main
Решил написать программу на j2se - калькулятор.Но я хочу чтоб при выводе результата программа...

Где ошибка в функции или как в потоках писать файлы?
в 2 словах набросал такую функцию, но главная ее проблема - это нагрузка оперативы, чтобы вы...

Функция, в функции main() или общие переменные для нескольких функций
Делаю мелкую игрушку, в консоли, ради забавы и столкнулся с 1 проблемой: Невозможно, создавать...

Будет ли корректным вызывать внутри методов get или set другие функции или менять свойства контролов?
Всем привет. Скажите разрешается, не в том смысле, что понятно все разрешено, а будет ли...

А почему ошибка, что функции print и read не определены в функции main()?
Что-то не понимаю. Они определены в заголовочном файле. А подчеркивается красным что нет.... ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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