声明变量
extern int a;
extern struct ledcode_t m_ledcode; //
在变量定义前加extern关键字表示声明一个变量但不定义它 。它表示"这只是一个声明,它的定义在别的地方",关键字extern,它表示变量是在文件以外定义的,或在文件后面部分才定义.
声明函数
extern int func1(innt length, int width);
这种声明方式和一般的func1()声明方式一样。因为没有函数体,编译器必定把它作为声明而不是函数定义。extern关键字对函数来说是多余的,可选的。C语言的设计者并不要求函数的声明使用extern,这可能有些令人遗憾;如果函数声明也要求使用extern,那么在形式上与变量声明更加一致,从而减少了混乱。
另外:
extern C 告诉编译器,这段代码用C的方式编译和链接,C++可以调用这段代码,
C中没有函数重载,C++编译的目标文件里函数名字和c处理方式编译是不一样的,要兼容C代码