2014-01-22 3 views
-1

У меня есть эта функция, которая объявлена ​​и не определена нигде. Но все же программа отлично работает в C, но не на C++. Как это возможно.Функция только объявлена, но все еще работает

void pzKasittelija(char *lid, char *lid2); // this function is only declared not defined anywhere 

PS: Я проверил все файлы и файлы заголовков, эта функция не определена !!!

Это сообщение об ошибке я получаю с C++

Ошибка 2 ошибки C2440: '=': не удается преобразовать из 'пустоты (__cdecl *) (символ *, символ *)' к «недействительным (__cdecl *) (...) '

Пожалуйста, взгляните на эти ссылки. это файлы, в которых проблема.

https://drive.google.com/file/d/0B2hZqiBoBiNEcVFUTFJyZUZvY1U/edit?usp=sharing

https://drive.google.com/file/d/0B2hZqiBoBiNEZWl6VzR4bzFHWm8/edit?usp=sharing

+1

Вы называете эту функцию? – benjymous

+0

- функция называется? – Dipto

+0

Вся логика говорит, что это не может «работать» в моем определении того, что означает «работа». – dornhege

ответ

0

Поскольку это только function prototype он просто сообщает компилятору, что функция как таковая будет использоваться в коде. Используя прототип функции, вы можете определить функции после кода для их вызова.

Когда вы включаете заголовок, вы включаете прототипы нескольких функций в этом файле .h и компилятор не ожидает, что вы назвать их все

0

Ваша программа не имеет ошибку компиляции, потому что это void, поэтому все, что он делает, ничего. Если вы ведете себя так, как ожидалось, это означает, что вы можете спокойно стереть эту функцию.

+0

пытается стереть, дал ошибку времени выполнения – user3176063

+0

показать нам еще код! – zoska

0

Если код написан для компиляторов bcc32 и VC++ C и как таковой не может точно компилироваться под C++, поскольку C++ имеет гораздо более строгие правила преобразования типов. C просто позволит этому, C++ хочет, чтобы вы сделали его явным.

Смежные вопросы