file1.c中爲extern 「C」 導致錯誤 「預期 '(' 字符串常量前」
int add(int a, int b)
{
return (a+b);
}
file2.cpp
void main()
{
int c;
c = add(1,2);
}
h1.h
extern "C" {
#include "stdio.h"
int add(int a,int b);
}
案例1: 當我包括h1.h在file1.c文件然後gcc編譯器拋出一個錯誤「預期」('字符串常量「之前」。
的情況下2: 當我包括h1.h在file2.cpp文件編制工作順利
問:
1)這是否意味着我可以不包括C頭文件用extern「C」函數呢?
2)可以包括我的extern 「C」 內報頭像下面所示
extern "C" {
#include "abc.h"
#include "...h"
}
3)I可以把C++函數定義在與外部的 「C」 的頭文件,這樣我可以在C文件調用它?
例如
a.cpp(CPP文件)
void test()
{
std::printf("this is a test function");
}
啊(頭文件)
extern "C" {
void test();
}
b_c.c(C文件)
#include "a.h"
void main()
{
test();
}
http://stackoverflow.com/questions/3329159/including-c-headers-inside-ac-program –
'extern「C」'是一個C++特性:http://en.cppreference.com/w/ CPP /語言/ language_linkage – UnholySheep