C語言學習筆記--__attribute__((weak))
阿新 • • 發佈:2019-01-11
1、在其他檔案中定義要呼叫的函式
main.c檔案
#include<stdio.h> #include "weak.h" char __attribute__((weak))Fun_Sum(char a, char b) { return a + b; } int main(int argc, char *argv[]) { char sum1 = 0; sum1 = Fun_Sum(20, 1); printf("%d \r\n",sum1); return 0; } /***程式輸出結果:19 ***/ /**************end of file**********/
weak.c檔案
#include "weak.h"
char
Fun_Sum(char a, char b)
{
return a - b;
}
/*******end of file***/
weak.h檔案
#ifndef __WEAK_H_
#define __WEAK_H_
char Fun_Sum(char a, char b);
#endif // __WEAK_H_
/******** end of file **********/
2、在其他檔案中不定義要呼叫的函式
main.c檔案
#include<stdio.h> #include "weak.h" char __attribute__((weak))Fun_Sum(char a, char b) { return a + b; } int main(int argc, char *argv[]) { char sum1 = 0; sum1 = Fun_Sum(20, 1); printf("%d \r\n",sum1); return 0; } /****程式輸出結果: 21 ********/ /**************end of file**********/
weak.c檔案
#include "weak.h"
#if 0
char
Fun_Sum(char a, char b)
{
return a - b;
}
#endif // 0
/*******end of file***/
weak.h檔案
#ifndef __WEAK_H_
#define __WEAK_H_
//char Fun_Sum(char a, char b);
#endif // __WEAK_H_
/******** end of file **********/