Вниз  C / C++
- 11.08.2012 / 10:52
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
beginner, это команды препроцессора. Первая и третья нужны для того, чтобы задавать какие-нибудь условия при компиляции. Вторая служит для установки параметров, констант и т.д.
Например, ты хочешь отладить программу, чтобы куда-нибудь писался лог об ошибках, но в релизе это не надо, вот ты и пишешь:
  1. #define DEBUG 1
  2. ....
  3. #ifdef DEBUG
  4. Log.debug("Entry point");
  5. #endif
Если написать "#define DEBUG 0", то условие препроцессора не выполнится, соответственно запись в лог не будет.
Таким же образом можно создавать различные конфигурации своих программ.
__________________
 let live
- 11.08.2012 / 11:13
beginner
  Пользователь

beginner 
Сейчас: Offline
Тоесть их можно никогда не использовать и программа из-за этого не станет хуже ?
- 11.08.2012 / 11:15
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
beginner, да, можно не использовать.
__________________
 let live
- 11.08.2012 / 11:16
beginner
  Пользователь

beginner 
Сейчас: Offline
Не хочу спамить, но большое спасибо..
- 11.08.2012 / 12:12
Oak
  Пользователь

Oak 
Сейчас: Offline
beginner, Пожалуйста) Всегда рады помочь
__________________
 Эль Презеденте
- 14.08.2012 / 13:38
beginner
  Пользователь

beginner 
Сейчас: Offline
Обясните пожалуйста нубу, как работает оператор return ? Много раз встречал, и до сех пор не дошло как ео правильно использовать.... :dum:
- 14.08.2012 / 13:44
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
beginner, когда программа выполняется и натыкается на оператор return, она игнорирует всевозможные операторы, которые идут дальше в методе и передаёт управление методу, который был в стеке сразу за выполняющимся.
Использование: если надо досрочно выйти из метода.
Пример:
  1. void showCompleteMessage(int percentage) {
  2.   // Если процент выполнения меньше 100, значит выводить инфо о завершении не нужно.
  3.   if (percentage < 100) return;
  4.   cout << "Operation complete!";
  5. }

А если метод должен что-то возвращать, тогда после return следует возвращаемое значение.
Например:
  1. int getPercentage() {
  2.   return percentage;
  3. }
Или посложнее:
  1. int getCuteGirlId() {
  2.   int rand = rand() % 3;
  3.   if (rand == 0) return 111;
  4.   if (rand == 1) return 2559;
  5.   return 2384;
  6. }

__________________
 let live

Изменено aNNiMON (14.08 / 13:50) (всего 4 раза)
- 14.08.2012 / 13:44
Oak
  Пользователь

Oak 
Сейчас: Offline
beginner, Он возвращает… :нар:
__________________
 Эль Презеденте
- 14.08.2012 / 14:52
XakepPRO
  Модератор форума

XakepPRO 
Сейчас: Offline
Программа, приведенная ниже, вычисляет число «пи» – тем точнее, чем больше «круг». Она не только компилируется, но еще и работает! Однако, понять, как она работает, невозможно ни путем анализа исходного кода, ни сохранением препроцессорного вывода в отдельном файле, ни даже дизассемблированием откомпилированного файла.

Это не шутка! Программа для расчета числа «пи». Да-да, именно расчета, а не вывода готовой константы посредством сопроцессора. Чем больше круг — тем выше точность расчетов.

  1. /*
  2. * Program to compute an approximation of pi
  3. * by Brian Westley, 1988
  4. */
  5. #define _ 0xF<00? --F<00||--F-OO--:-F<00||--F-OO--;
  6. int F=00,OO=00;
  7. main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
  8. {
  9.            _-_-_-_
  10.       _-_-_-_-_-_-_-_-_
  11.     _-_-_-_-_-_-_-_-_-_-_-_
  12.   _-_-_-_-_-_-_-_-_-_-_-_-_-_
  13.  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  14.  _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  15. _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  16. _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  17. _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  18. _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  19.   _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  20.   _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
  21.    _-_-_-_-_-_-_-_-_-_-_-_-_-_
  22.      _-_-_-_-_-_-_-_-_-_-_-_
  23.        _-_-_-_-_-_-_-_
  24.           _-_-_-_
  25. }

- 15.08.2012 / 04:06
nexmean
  Пользователь

nexmean 
Сейчас: Offline
XakepPRO, автор случаем не потомственный индийский программист?
Наверх  Всего сообщений: 2777
Фильтровать сообщения
Поиск по теме
Файлы топика (111)