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 для примера*/
Где проблема понять не могу =/
#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 для примера*/
Где проблема понять не могу =/