主函數中調用外部檔案定義的函數,兩種方法:
第一種:
htest.cpp:
#include "stdafx.h"#include "stdio.h"extern void b(void);extern void c(void);int main(int argc, char* argv[]){printf("Welcome to main.\n");b();c();return 0;}
a.cpp:
#include "stdio.h"void b(void){printf("b() in a.cpp come here for your calling.\n");}void c(void){printf("c() in a.cpp come here for your calling.\n");}
第二種:
htest.cpp:
#include "stdafx.h"#include "stdio.h"#include "a.h"int main(int argc, char* argv[]){printf("Welcome to main.\n");b();c();return 0;}
a.h:
#ifndef __a_h__#define __a_h__void b(void);void c(void);#endif
a.cpp:
#include "stdio.h"//#include "a.h" //此語句可有可無void b(void){printf("b() in a.cpp come here for your calling.\n");}void c(void){printf("c() in a.cpp come here for your calling.\n");}
在第一種方法中,外部函數所在源副檔名.cpp如果改成.c則會在編譯連結時出現錯誤:
fatal error LNK1120: 2 unresolved externals