forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Вызов функций (http://forum.boolean.name/showthread.php?t=15986)

RegIon 07.12.2011 14:42

Вызов функций
 
PHP код:

double cos(double c){
double x=c;
if(
x>PI*2)x-=PI*2
int N 2*20;
double mx2 = -x*x;
 
    
int i;
    
double part 1sum 1;
    for (
2Ni+=2) {
        
part *= mx2/((i-1)*i);
        
sum += part;
    }
  return 
sum;
}
//синус,из косинуса
double sin(double x){return cos(((PI/2.0)-x));} 

Почему если вынести этот код в отдельный исходник,то sin перестаёт работать(машина виснит на нём)?а если в main.c,то всё нормально?>>:(

HolyDel 07.12.2011 15:43

Ответ: Вызов функций
 
отдельный исходник в отдельном проекте, в котором double cos(double) определено как
Цитата:

double cos(double n)
{
while(1)
{
}
}
???

RegIon 07.12.2011 16:14

Ответ: Вызов функций
 
Цитата:

Сообщение от HolyDel (Сообщение 212855)
отдельный исходник в отдельном проекте, в котором double cos(double) определено как

???

Что?

HolyDel 07.12.2011 16:24

Ответ: Вызов функций
 
ну исходя из твоего описания проблемы я смог стелепатировать только это. уточняй проблему. описывай подробнее. линкеру пофигу в каком файле твоя функция.

pax 07.12.2011 16:36

Ответ: Вызов функций
 
Может заголовок для этого файла не подключен к текущему?

HolyDel 07.12.2011 16:48

Ответ: Вызов функций
 
func.cpp
Код:

#include <cassert>

double func1(double val)
{
        return val+1;
}

double func1(int val)
{
        assert(0);

        return val+1;
}

main.cpp
Код:

#include <iostream>

#define USE_INT_FUNCTION

double func1(int);

#ifdef USE_INT_FUNCTION
double func2(double val)
{
        return func1(val-1);
}
#endif

double func1(double);

#ifndef USE_INT_FUNCTION
double func2(double val)
{
        return func1(val-1);
}
#endif

int main()
{
        std::cout<<func2(0.5)<<std::endl;

        std::cin.get();
}

вот еще один пример - в зависимости от того, закоментирован дефайн или нет, оно или падает или нет.

pozitiffcat 07.12.2011 18:40

Ответ: Вызов функций
 
все объявления funс1 пеоенеси в начало, это вопервых самомуже не удобно наверное и походк на ассерте падает

HolyDel 07.12.2011 19:27

Ответ: Вызов функций
 
я показывал автору, почему перемещение функции из одного места в другое может изменить логику программы. и да, падает стопудово на ассерте :)

pozitiffcat 08.12.2011 10:11

Ответ: Вызов функций
 
Цитата:

Сообщение от HolyDel (Сообщение 212892)
я показывал автору, почему перемещение функции из одного места в другое может изменить логику программы. и да, падает стопудово на ассерте :)

:-D я протупил, думал ты спрашиваешь ))))


Часовой пояс GMT +4, время: 13:04.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot