我正在使用此函数,该函数仅在任何地方声明且未定义。但是程序仍然可以在C中正常工作,但在C ++中却没有。这怎么可能。
void pzKasittelija(char *lid, char *lid2); // this function is only declared not defined anywhere
PS:我检查了所有的libs和头文件,该函数未定义!!!
这是我使用C ++获得的错误消息
错误2错误C2440:'=':无法从'void(__ cdecl *)(char *,char *)'转换为'void(__ cdecl *)(...)'
请查看这些链接。这些是问题所在的文件。
https://drive.google.com/file/d/0B2hZqiBoBiNEcVFUTFJyZUZvY1U/edit?usp=sharing
https://drive.google.com/file/d/0B2hZqiBoBiNEZWl6VzR4bzFHWm8/edit?usp=sharing
答案 0 :(得分:0)
由于这只是function prototype,它只是通知编译器在代码中将使用这样的函数。通过使用函数原型,您可以在调用代码之后定义函数。
当您包含标题时,在.h
文件中包含多个函数的原型,编译器不希望您调用所有函数
答案 1 :(得分:0)
你的程序没有编译错误,因为它是一个void函数,所以它所做的一切都没有。如果程序按预期运行,则表示您可以安全地删除该功能。
答案 2 :(得分:0)
如果代码是为bcc32和VC ++ C编译器编写的,因此在C ++下编译可能不完全相同,因为C ++对转换类型有更严格的规则。 C只会让它发生,C ++希望你让它明确。