PDA

Просмотр полной версии : [Помогите!] Undeclared


userinit.exe
07.12.2012, 15:36
В общем есть вот такая вот функция(С++):

#include <stdio.h>
#include <math.h>
float pri0()
{
extern int x, y, f; /*описание внешних переменных x, y, f*/
extern int a, b; /*описание внешних переменных a, b, являющихся статическими*/
puts("введите значение b");
scanf("%d", &b);
printf("программа pri0: a=%d; b=%d; x=%d; y=%d. \n\n", a, b, x, y ); /*вывод значений внешних переменных, а, х и у получили значения вне этого файла, b получила значение в этом файле*/
if(a>b) f=x*y;
else f=x%y; /*вычисления f для примера*/
return(f);
}
void pri1(void) /*функция pri1()*/
{
printf("\nпрограмма pri1: a+b=%d.\n", &b+3); /*выводится значение a+b для примера*/
}



Подключается из данного кода:

#include <iostream>
#include <stdlib.h>
#include "pri.cpp"

int x, y, c, f; /*объявление внешних переменных*/
static int a=3, b; /*объявление внешних статических переменных a, b целого типа, инициализация переменной а*/
main(){
void pri1(void); /*объявление функции не возвращающей значение*/
puts("введите значения x, y");
scanf("%d%d", &x, &y); /*ввод значений внешних переменных*/
puts("введите значение b");
scanf("%d", &b);

printf("\tf=%d\n", f); /*вывод на экран значения переменной f, вычисленного в функции pri0()*/
pri1(); /*обращение к функции pri1()*/
pri0(); /*обращение к функции pri0()*/
}



При компиляции функции получется вот такой бред:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
И ругается на эту строку:
printf("\nпрограмма pri1: a+b=%d.\n", &b+3); /*выводится значение a+b для примера*/

Где проблема понять не могу =/

Sinyss
07.12.2012, 15:55
Где проблема понять не могу =/
extern int x, y, f; /*описание внешних переменных x, y, f*/
extern int a, b; /*описание внешних переменных a, b, являющихся статическими*/
Вот это должно быть вне метода...

VeTaL_UA
07.12.2012, 16:14
extern int x, y, f; /*описание внешних переменных x, y, f*/
extern int a, b; /*описание внешних переменных a, b, являющихся статическими*/
внешние переменные в внутренней функции?

Sinyss
07.12.2012, 16:20
внешние переменные в внутренней функции?
некоторые просто не умеют читать сообщение об ошибке...

userinit.exe
07.12.2012, 17:53
некоторые просто не умеют читать сообщение об ошибке...
Ну я прочитал необъявлены и все /dgs
Просто задания такие в универе идиотские, найди ошибку в коде /kidding

Sinyss
07.12.2012, 18:04
Просто задания такие в универе идиотские, найди ошибку в коде
Ты не видел что мне давали на 1м курсе, там надо было документацию смотреть что бы понять какой будет результат =)