新聞速報

        

2014年2月27日 星期四

呼叫外部.c或.cpp中的變數與函式

呼叫外部.c或.cpp中的變數與函式
有一個專案包含 main.c 和 shareC.c 和 shareC.h
main.c 需要用到 funInC()
可以在main.c內開頭加入
#include "shareC.h"
 或
extern int funInC();
這兩個方式都可以compile過 



// file: shareC.h  
 extern int dataInC;
 
// 避免在.cpp中為實現同名異式(overload),會更改函式名稱。
// 比較好的寫法是加上extern。這可以明確讓compiler或閱讀程式的人清楚知道,這個函式是在另外一個程式中。如: extern int funInC(); 
extern "C" {   
   void funInC();
   int funInC1(int x);
}; 

// file: shareC.C
int dataInC = 44;
 
int funInC()
{ 
   return dataInC;
}
 
int funInC1(int x)
{ 
   return (x*x+3);
}

//=============================================
 
// file: shareCPP.h 
extern float dataInCPP;
 
//不加extern亦可,compiler在該程式中找不到函式內容,會認定這是個外部函式。
extern float funInCPP(float x); 

// file: shareCPP.cpp
float dataInCPP = 88; 
 
float funInCPP(float x)
{ 
   if ( x<0 ) 
    return (-x);
   else 
    return (x);
}

沒有留言:

張貼留言