1
我想包括C代碼,「config.h中」,在C++代碼中使用:錯誤,當我包括C在C++
extern "C"
{
#include "config.h"
}
如果我編譯「config.h中的」單獨用gcc我沒有錯誤,但是當我連克編譯C++代碼+我得到以下錯誤:
無效的轉換,從「無效」到「字符*」 *。
錯誤指向從 「config.h中」 下面的行:
newsect->name = malloc(strlen(config));
其中配置是類型char *的。
任何人都可以請告訴我如何使這項工作?先謝謝你!
該行在C中有效,因爲'void *'(由'malloc'返回)可以隱式轉換爲另一種類型。 C++沒有相同的行爲。你必須添加一個類似'(char *)'的強制類型來使它成爲合法的C++。 – birryree 2014-08-30 22:19:51
(char *)malloc(...); – 2014-08-30 22:20:33
爲什麼你的頭文件中有代碼? – sp2danny 2014-08-30 22:23:45