|
Функции и структура программВо-вторых, так же важно, чтобы вызывающая функция знала, что atof возвращает не-int значение. Один из способов достичь этого - это явно объявить atof в викликовий функции. Объявления, показано в следующей примитивной программке-калькуляторе (достаточной разве что для збалансовування чековой книжки), которая читает по одному числу на строку, со знаком впереди, и добавляет их, выводя текущую сумму после каждого ввода: # Include # Define MAXLINE 100 / * Простенький калькулятор * / main () { double sum, atof (char []); char line [MAXLINE]; int getline (char line [] int max); sum = 0; while (getline (line, MAXLINE)> 0) printf ("\ t% g \ n", sum + = atof (line)); return 0; } Объявления double sum, atof (char []); указывает на то, что sum является переменной типа double и, что atof - это функция, которая примет один аргумент char [] и вернет число типа double. Функцию atof должно быть объявлено и определено без противоречий. Если сама atof и ее вызов внутри main иметь несогласованные типы в том же исходном тексте, компилятор заметит ошибку. Но (что бывает чаще), если atof было собран отдельно, расхождение обнаружено не будет, atof вернула бы double, которое main рассмотрела бы int, выдавая бессодержательное значение. Учитывая сказанное нами, что объявления должны совпадать с определениями, это может показаться странным. Причиной несоответствия может быть отсутствие прототипа, функцию косвенно объявлено во время первой ее появления в выражении, как вот sum + = atof (line); Продолжение статьи: ч.1 Продолжение статьи: ч.2 Продолжение статьи: ч.3 Продолжение статьи: ч.4 Продолжение статьи: ч.5 Продолжение статьи: ч.6 Продолжение статьи: ч.7 Продолжение статьи: ч.8 Продолжение статьи: ч.9 Продолжение статьи: ч.10 Продолжение статьи: ч.11 Продолжение статьи: ч.12 Продолжение статьи: ч.13 Продолжение статьи: ч.14 Продолжение статьи: ч.15 Продолжение статьи: ч.16 Продолжение статьи: ч.17 Продолжение статьи: ч.18 Продолжение статьи: ч.19 Продолжение статьи: ч.20 Продолжение статьи: ч.21 Другие статьи по теме: - Внешние переменные и область действия- Символьные массивы - Типы, операторы и выражения - Функции и структура программ - Введение в c++ |
|
2006-2024 © SMTI.RU Главная страница | Связаться с нами |